首頁 > 後端開發 > C++ > 我如何在運行時獲取C#變量或參數的名稱?

我如何在運行時獲取C#變量或參數的名稱?

Linda Hamilton
發布: 2025-01-27 03:51:12
原創
356 人瀏覽過

How Can I Get the Name of a C# Variable or Parameter at Runtime?

在C#中取得變數與參數名稱

問題陳述:

決定傳遞給函數的變數或參數的名稱。例如,給定以下程式碼:

<code class="language-csharp">var myInput = "input";
var nameOfVar = GETNAME(myInput); // ==> nameOfVar 应该等于 "myInput"

void testName([Type?] myInput)
{
   var nameOfParam = GETNAME(myInput); // ==> nameOfParam 应该等于 "myInput"
}</code>
登入後複製

我們如何在兩種情況下取得「myInput」的名稱?

解:

C# 6.0之前的方案:

利用MemberInfoGetting類,您可以檢索任何提供的成員的名稱。以下是實作方法:

<code class="language-csharp">public static class MemberInfoGetting
{
    public static string GetMemberName<T>(Expression<Func<T>> memberExpression)
    {
        MemberExpression expressionBody = (MemberExpression)memberExpression.Body;
        return expressionBody.Member.Name;
    }
}

// 获取变量名称:
string testVariable = "value";
string nameOfTestVariable = MemberInfoGetting.GetMemberName(() => testVariable);

// 获取参数名称:
public class TestClass
{
    public void TestMethod(string param1, string param2)
    {
        string nameOfParam1 = MemberInfoGetting.GetMemberName(() => param1);
    }
}</code>
登入後複製

C# 6.0以上版本方案:

C# 6.0中引入的nameof運算子簡化了檢索參數、變數和屬性名稱的過程。以下是實作方法:

<code class="language-csharp">string testVariable = "value";
string nameOfTestVariable = nameof(testVariable);</code>
登入後複製

以上是我如何在運行時獲取C#變量或參數的名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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