C# で文字列としてプロパティ名にアクセスする
C# プログラミングでは、特にリフレクションを使用する場合、プロパティの名前を文字列として取得することが頻繁に必要になります。これは、動的なメソッド呼び出しや偶発的なプロパティの名前変更に対する保護などのタスクにとって非常に貴重であることがわかります。
nameof
演算子の活用 (C# 6.0 以降)
C# 6.0 以降、nameof
演算子はシンプルで効率的なソリューションを提供します。 式 nameof(SomeProperty)
は、コンパイル時に文字列 "SomeProperty" を直接生成します。
汎用プロパティ名の取得メソッド
6.0 より前のバージョンの C# では、一般的な方法で回避策が提供されます。
<code class="language-csharp">public static string GetPropertyName<T>(Expression<Func<T>> propertyLambda) { var me = propertyLambda.Body as MemberExpression; if (me == null) { throw new ArgumentException("Invalid lambda expression"); } return me.Member.Name; }</code>
このメソッドは、プロパティを参照するラムダ式を受け入れ、その名前を返します。
実際の応用
GetPropertyName
メソッドを利用する方法は次のとおりです:
<code class="language-csharp">// For a static property: string propertyName = GetPropertyName(() => SomeClass.SomeProperty); // For an instance property: string propertyName = GetPropertyName(() => someObject.SomeProperty);</code>
概要
最新の nameof
演算子を使用する場合でも、GetPropertyName
メソッドを使用する場合でも、プロパティ名を文字列として取得することが簡素化され、リフレクションやリファクタリングを扱う際のコードの保守性と堅牢性が向上します。
以上がC# でプロパティ名を文字列として取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。