私が組み込まれているロジックたとえばプロパティを持つクラスを持っている場合:ロジックがあるときに、バッキングフィールドを持つプロパティに変換する必要がありますか?
class myModelClass
{
public List<SummaryModel> Coupons {get;set;}
public decimal AlaCarteTotal
{
get
{
if (Coupons != null)
{
if (!Coupons.Any(x => x.GromotionApplied))
{
return Coupons.Sum(x => x.DefaultPrice);
}
return Coupons.Sum(x => x.GromotionApplied ? x.GromoPrice : x.DefaultPrice);
}
return default(decimal);
}
}
}
...ここのようにバッキングフィールドを持つようにクーポンを変換する方が良いでしょう:
class myModelClass
{
public List<SummaryModel> Coupons
{
get
{
return _Coupons;
}
set
{
_Coupons = value;
}
}
public decimal AlaCarteTotal
{
get
{
if (_Coupons != null)
{
if (!_Coupons.Any(x => x.GromotionApplied))
{
return _Coupons.Sum(x => x.DefaultPrice);
}
return _Coupons.Sum(x => x.GromotionApplied ? x.GromoPrice : x.DefaultPrice);
}
return default(decimal);
}
}
}
一般的に、モデルクラスに何らかのゲッターロジックが含まれている場合、そのプロパティをバッキングフィールドを持つものに変換する必要がありますか?
私は混乱している...あなたの 'Coupons'プロパティには、任意のロジックを持っていません。だからなぜそれを裏打ち場にしたいのですか? 'AlaCarteTotal'はロジックを持つプロパティですが、バッキングフィールドは必要ありません....いくつかは' AlaCarteTotal'をプロパティの代わりにメソッドにするより良いスタイルだと言うかもしれません... –
この ' [リストクーポン{取得;セット;} '' 'とにかくバックアップされたフィールドを持っています(これをしない場合は、コンパイラが行います) –
tym32167
トピックをオフにするかもしれませんが、AlaCarteTotalとして見て、何かの存在を確認する)、私はパラメータとしてクーポンを渡し、プロパティからメソッドに変更し、別のクーポンプロパティの必要性を完全に取り除きます。 –