【问题标题】:Getting the name of the parameter passed into a method [duplicate]获取传递给方法的参数名称[重复]
【发布时间】:2010-10-19 19:23:23
【问题描述】:

复制: Determine the name of the variable used as a parameter to a method

有没有办法检索传递给方法的参数的名称,例如

int someParameter = 1;
Method(someParameter);

public void Method(int parameter)
{
    // I want the name of 'parameter' which will be 'someParameter'.
}

【问题讨论】:

  • 请问您为什么想知道?可能有更好的方法来实现您想要的。

标签: c# reflection parameters


【解决方案1】:

唯一的方法可能是使用具有运行时保留的注释。但是,它将是注释的名称,而不是参数本身的名称。参数名称只是语言的语法工件。它不会转移到编译结果中。

【讨论】:

    【解决方案2】:

    没有。它只是作为参数传入的 value。所有方法获取的是整数。就您的方法而言,表达式恰好只是对变量进行求值这一事实是未知的。

    【讨论】:

    • 出于兴趣(我看不出非 WTF 的理由来实际这样做),将参数更改为“ref”是否允许这样做?
    • @Michael:不。至少,不是没有一些非常狡猾的不安全代码,它们能够测试各种可能的变量,并找到一个具有相同存储位置的变量。这可能可行,我不确定。
    【解决方案3】:

    不,没有办法。

    接下来会有一群人展示奇怪的 lambda 表达式来更改调用站点并获得名称,但简短的回答是否定的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 2010-11-03
      相关资源
      最近更新 更多