Obtenir les noms de variables et de paramètres en C#
Énoncé du problème :
Déterminez le nom de la variable ou du paramètre passé à la fonction. Par exemple, étant donné le code suivant :
<code class="language-csharp">var myInput = "input"; var nameOfVar = GETNAME(myInput); // ==> nameOfVar 应该等于 "myInput" void testName([Type?] myInput) { var nameOfParam = GETNAME(myInput); // ==> nameOfParam 应该等于 "myInput" }</code>
Comment pouvons-nous obtenir le nom de "myInput" dans les deux cas ?
Solution :
Solution pré-C# 6.0 :
En utilisant la classe MemberInfoGetting, vous pouvez récupérer le nom de n'importe quel membre fourni. Voici comment procéder :
<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>
Forfait version C# 6.0 et supérieure :
L'opérateur nameof introduit dans C# 6.0 simplifie le processus de récupération des noms de paramètres, de variables et de propriétés. Voici comment procéder :
<code class="language-csharp">string testVariable = "value"; string nameOfTestVariable = nameof(testVariable);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!