首页 >后端开发 >C++ >如何在 C# 中获取字符串形式的属性名称?

如何在 C# 中获取字符串形式的属性名称?

Barbara Streisand
Barbara Streisand原创
2025-01-12 07:58:42352浏览

How Can I Get a Property's Name as a String in C#?

获取属性名称字符串

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn