C# 6.0 以降では、nameof
式を使用してプロパティ名を文字列として簡単に取得できます。この式はコンパイル時にプロパティの名前に解決されます。
例:
<code class="language-csharp">string propertyName = nameof(SomeClass.SomeProperty);</code>
この式はコンパイル時に「SomeProperty」と評価されます。
注: nameof
は属性にのみ使用でき、他の型のメンバーには使用できません。
C# の初期バージョン
C# 6.0 より前のバージョンでは、次のメソッドを使用できます:
<code class="language-csharp">public string GetPropertyName<T>(Expression<Func<T>> propertyLambda) { var memberExpression = propertyLambda.Body as MemberExpression; if (memberExpression == null) throw new ArgumentException("表达式必须是属性lambda表达式。"); return memberExpression.Member.Name; }</code>
このメソッドは、プロパティ アクセサーを表すラムダ式を受け取り、プロパティの名前を返します。
例:
<code class="language-csharp">string propertyName = GetPropertyName(() => SomeClass.SomeProperty);</code>
以上がC# でプロパティ名を文字列として取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。