Search code examples
c#c#-6.0nameof

Is there a way to get name of an argument from calling method in called method?


The following code prints "argument".

void PrintNameOf(string argument)
{
    Console.WriteLine($"{nameof(argument)} has value: {argument}");
}

string myString = "hello";
PrintNameOf(myString);

Is there a way to get "myString"?


Solution

  • You'd have to do

    void PrintNameOf(string argument, string name)
    {
        Console.WriteLine($"{name} has value: {argument}");
    }
    
    string myString = "hello";
    PrintNameOf(myString, nameof(myString));