首頁 > 後端開發 > C++ > 如何在 C# 反射中取得字串形式的屬性名稱?

如何在 C# 反射中取得字串形式的屬性名稱?

Patricia Arquette
發布: 2025-01-12 10:23:44
原創
801 人瀏覽過

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

利用C#反射取得屬性名稱字串

在使用反射時,經常需要將屬性名稱作為字串取得。當屬性名稱在重構過程中可能發生變化,或透過泛型介面遠端存取屬性時,這變得特別必要。

傳統方法是手動將屬性名稱作為ExposeProperty()等方法的第三個參數指定。然而,這種方法容易出錯,並且如果屬性名稱發生更改,則需要不斷更新。

C# 6.0解:nameof表達式

C# 6.0提供了一個內建解決方案:nameof表達式。此表達式可讓您在編譯時直接檢索屬性名稱作為字串。

<code class="language-csharp">string name = nameof(SomeClass.SomeProperty);</code>
登入後複製

即使稍後重新命名屬性,上述表達式也會傳回字串「SomeProperty」。

簡化反射碼

使用nameof表達式,我們可以簡化ExposeProperty()方法,並消除手動指定屬性名稱的需要:

<code class="language-csharp">public void ExposeProperty(string secretName, Type classType, string propertyName)
{
    // 使用反射获取属性信息
    PropertyInfo propertyInfo = classType.GetProperty(propertyName);

    // 使用反射公开属性
    RemoteMgr.ExposeProperty(secretName, classType, propertyInfo);
}</code>
登入後複製

此方法可確保用於遠端存取的屬性名稱始終是最新的,無論在重構期間進行了哪些變更。

透過利用nameof表達式,開發人員可以透過動態檢索屬性名稱作為字串來提高程式碼的可維護性和健全性,消除潛在錯誤,並確保即使在程式碼修改後反射操作仍然準確。

以上是如何在 C# 反射中取得字串形式的屬性名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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