在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>
此方法採用表示屬性存取器的lambda表達式,並傳回屬性的名稱。
範例:
<code class="language-csharp">string propertyName = GetPropertyName(() => SomeClass.SomeProperty);</code>
以上是如何在 C# 中取得字串形式的屬性名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!