2017-08-09 2 views
0

Der folgende Code gibt "Argument" aus.Gibt es eine Möglichkeit, den Namen eines Arguments von der aufrufenden Methode in der aufgerufenen Methode zu erhalten?

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

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

Gibt es eine Möglichkeit, "myString" zu bekommen?

+2

Nein zu tun, weil * innerhalb * der Methode der Kennung 'myString' sogar eist spielt keine. Außerhalb der Methode können Sie natürlich 'nameof (mystring)' verwenden. – HimBromBeere

+4

Im kompilierten Code existiert 'mystring' normalerweise nicht einmal auf der Callsite, geschweige denn in der aufgerufenen Methode. –

Antwort

1

würden Sie haben

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

string myString = "hello"; 
PrintNameOf(myString, nameof(myString)); 
Verwandte Themen