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