2 つのプロパティを持つオブジェクトがあります。
public class Request
{
public int TypeId { get; set; }
public bool isApproved { get; set; }
}
私がしたいのは、TypeIdequalsの場合はequalにし1たい、そうでない場合は、新しいオブジェクトを作成するときにそれを等しくしたいということです。次のことを試しましたが、コンストラクターでルールを実行する両方のオブジェクトに対して設定されました。isApprovedfalsetruetrue
public Request() {
if(this.TypeId == 1) {
this.isApproved = false;
}
this.isApproved = true;
}
var request = new Request() {
TypeId = 1
}
var request2 = new Request() {
TypeId = 2
}
これが発生した理由はわかっています。TypeIdコンストラクターが呼び出されたときに が設定されていないため、デフォルトでtrue. TypeId新しく作成されたオブジェクトに設定されたら、これを自動的に設定できる方法はありますか?
編集
isApprovedまた、後日手動で変更するオプションが欲しいので、に設定されている場合は、設定した自動ルールに影響を与えずにfalse変更できますtrue