のような単純化された構文は理想的ですが、C#には組み込まれていません。 プロセスを合理化する方法を探りましょう
INotifyPropertyChanged
1つのアプローチには、一般的な{get; set; notify;}
メソッドを使用した基本クラスが含まれます:
これにより、プロパティ宣言ボイラープレートが削減されます。 C#5のSetField
属性はこれをさらに簡素化します:
<code class="language-csharp">public class Data : INotifyPropertyChanged { protected virtual void OnPropertyChanged(string propertyName); protected bool SetField<T>(ref T field, T value, string propertyName); public string Name { get { return name; } set { SetField(ref name, value, "Name"); } } // ... other properties }</code>
c#6以降、さらに簡潔なコードのために追加の改善を提供します。
CallerMemberName
<code class="language-csharp">protected bool SetField<T>(ref T field, T value, [CallerMemberName] string propertyName = null); public string Name { get { return name; } set { SetField(ref name, value); } }</code>
完全な自動化については、
などのツールを検討してください。 外部依存関係を必要としますが、マニュアルイベントを完全に排除します。 これは、大規模なプロジェクトにとって強力なオプションです。 手動最適化(ベースクラスを使用)と自動コード生成の選択は、プロジェクトのサイズと外部依存関係の好みに依存します。
以上がInotifyPropertyChangedの簡素化:手動の実装よりも簡単な方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。