【问题标题】:Is there a way to get name of an argument from calling method in called method?有没有办法从被调用方法中的调用方法中获取参数的名称?
【发布时间】:2017-08-09 11:49:57
【问题描述】:

以下代码打印“argument”。

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

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

有没有办法得到“myString”?

【问题讨论】:

  • 不,因为在方法中,标识符myString 甚至不存在。但是在方法之外,您当然可以使用nameof(mystring)。
  • 在编译后的代码中,mystring 通常在调用点是不存在的,更不用说在被调用的方法中了。

标签: c# c#-6.0 nameof


【解决方案1】:

你必须这样做

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多