Dapatkan pembolehubah dan nama parameter dalam C#
Pernyataan Masalah:
Tentukan nama pembolehubah atau parameter yang dihantar ke fungsi. Contohnya, diberikan kod berikut:
<code class="language-csharp">var myInput = "input"; var nameOfVar = GETNAME(myInput); // ==> nameOfVar 应该等于 "myInput" void testName([Type?] myInput) { var nameOfParam = GETNAME(myInput); // ==> nameOfParam 应该等于 "myInput" }</code>
Bagaimanakah kita boleh mendapatkan nama "myInput" dalam kedua-dua kes?
Penyelesaian:
Penyelesaian Pra-C# 6.0:
Menggunakan kelas MemberInfoGetting anda boleh mendapatkan semula nama mana-mana ahli yang disediakan. Begini cara melakukannya:
<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>
Pelan versi C# 6.0 dan lebih tinggi:
Nama pengendali yang diperkenalkan dalam C# 6.0 memudahkan proses mendapatkan semula nama parameter, pembolehubah dan sifat. Begini cara melakukannya:
<code class="language-csharp">string testVariable = "value"; string nameOfTestVariable = nameof(testVariable);</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah atau Parameter C# pada Runtime?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!