首頁 > 後端開發 > C++ > 如何在 C# 中以字串形式檢索屬性名稱?

如何在 C# 中以字串形式檢索屬性名稱?

Patricia Arquette
發布: 2025-01-12 07:54:41
原創
597 人瀏覽過

How to Retrieve a Property Name as a String in C#?

在 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>
登入後複製

此方法接受引用屬性的 lambda 表達式並傳回其名稱。

實際應用

以下是如何使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板