1. ホーム
  2. c#

[解決済み] 変数名やパラメータ名を取得する [重複] 。

2022-02-24 07:50:36

質問

変数名やパラメータ名を取得したい。

例えば、私が持っている場合。

var myInput = "input";

var nameOfVar = GETNAME(myInput); // ==> nameOfVar should be = myInput

void testName([Type?] myInput)
{
   var nameOfParam = GETNAME(myInput); // ==> nameOfParam should be = myInput
}

C#でやるにはどうしたらいいですか?

どのように解決するのですか?

C#6.0以前の解決策

提供された任意のメンバーの名前を取得するために使用できます。

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);
    }
}

C# 6.0 以降のソリューション

を使用することができます。 nameof 演算子は、パラメータ、変数、プロパティを同様に扱います。

string testVariable = "value";
string nameOfTestVariable = nameof(testVariable);