私はC#クラス内の関数を持っている:異なるコードブロックの検証を組み合わせる必要がありますか?
class Fun {
private string waterGun;
private string jacket;
void HaveSomeFun(bool summers) {
waterGun = <Some Value>
jacket = <Some Other Value>
validate();
if(summers) {
Console.WriteLine("Using {0}", waterGun);
} else {
Console.WriteLine("Using {0}", jacket);
}
}
private void validate() {
ArgumentValidationHelper.ValidateNotNullOrEmpty("WaterGun", this.waterGun);
ArgumentValidationHelper.ValidateNotNullOrEmpty("Jacket", this.jacket);
}
}
私は検証のための変数のインスタンスメンバーを作っています。バリデーションのためだけにメソッドからクラスへ変数の範囲を広げることは理にかなっていますか?
バリデーションを集中化し、変数がクラスメンバである必要がない場合、この機能を実現する他の(より良い)方法はありますか?
あなたが勇気があるなら、[System.ComponentModel.DataAnnotations](https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.validator(v = vs.110))を使うことができます。 aspx)。 [ここで](http://stackoverflow.com/q/2109423/6138713)は、データ注釈に関連する回答のある質問です。 –