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 中国語 Web サイトの他の関連記事を参照してください。