首頁 > 後端開發 > C++ > 在 C# 中如何使用反射來檢索變數名稱?

在 C# 中如何使用反射來檢索變數名稱?

Linda Hamilton
發布: 2024-12-30 22:41:12
原創
378 人瀏覽過

How Can Reflection Be Used to Retrieve Variable Names in C#?

透過反射了解變數名稱檢索

使用反射檢索變數名稱的任務引起了開發人員一段時間的興趣。編譯為 IL 後無法存取變數名稱是一項挑戰。然而,透過創造性的方法,可以利用反射來克服這個限制。

為了實現這一點,採用了表達式樹和閉包提升。表達式樹提供了一種以程式設計方式表示表達式的方法。透過將變數提升為閉包,您可以有效地保留其名稱。

以下程式碼示範了此技術的實作:

static string GetVariableName<T>(Expression<Func<T>> expr)
{
    var body = (MemberExpression)expr.Body;

    return body.Member.Name;
}
登入後複製

此方法採用一個表達式並檢索它所引用的變數。例如:

static void Main()
{
    var someVar = 3;

    Console.Write(GetVariableName(() => someVar));
}
登入後複製

在此範例中,方法 GetVariableName 用於檢索變數 someVar 的名稱。

效能注意事項

值得注意的是,這種技術的計算成本可能很高。在執行期間建立和銷毀物件會增加垃圾收集壓力。此外,在幕後,調用了多種方法,並且大量使用了反射。因此,建議避免在效能關鍵的程式碼路徑中使用此方法。

以上是在 C# 中如何使用反射來檢索變數名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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