在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中文网其他相关文章!