nameof 演算子のないタイプセーフなデータバインディング: 回避策
C# では、nameof 演算子の欠如により type-safe が問題になります。安全なデータバインディング。従来、開発者はプロパティ名を表すために文字列リテラルを使用しており、エラーのリスクが生じます。
.NET 3.5 の回避策
幸いなことに、.NET には回避策が存在します。類似の名前を提供する 3.5機能:
class Nameof<T> { public static string Property<TProp>(Expression<Func<T, TProp>> expression) { var body = expression.Body as MemberExpression; if(body == null) throw new ArgumentException("'expression' should be a member expression"); return body.Member.Name; } }
使用法:
var propName = Nameof<SampleClass>.Property(e => e.Name); Console.WriteLine(propName); // Output: "Name"
.NET 2.0 の実装
残念ながら、.NET 2.0 での nameof 機能の実装は次のとおりです。ラムダ式と汎用オブジェクトがないため実現不可能
ただし、プロパティ名を安全に取得するには、Reflection や事前設定された辞書などの代替ソリューションの使用を検討してください。これらの方法では、より多くの手動作業が必要になる場合がありますが、それでも望ましい結果を達成できます。
以上が`nameof` 演算子を使用せずに .NET でタイプセーフなデータバインディングを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。