c# - 获取传递给 C# 方法的参数的名称

标签 c#

void MyMethod(string something, params object[] parameters)
    {
      foreach (object parameter in parameters)
      {
        // Get the name of each passed parameter
      }
    }

例如,如果我按以下方式调用该方法,我想获取名称“myFirstParam”和“anotherParam”。

string myFirstParam = "some kind of text";
string anotherParam = 42;
MyMethod("test", myFirstParam, anotherParam);

也许反射(reflection)就是答案?也许这是不可能的?我知道 this question 的存在,但该解决方案在这里不起作用。

(请不要回答“这不是一个好主意”。这不是我的问题。)

最佳答案

这完全不可能。

这里只是一些甚至没有意义的情况:

MyMethod("abc", new object[5]);
MyMethod("abc", "def");
MyMethod("abc", var1 + var2);
MyMethod("abc", SomeMethod());
MyMethod("abc", b ? a : c);
MyMethod("abc", new object()); 
MyMethod("abc", null);

事实上,局部变量名甚至没有被编译到程序集中。

关于c# - 获取传递给 C# 方法的参数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025858/

相关文章:

c# - 生产服务器上的 ASP.NET Identity session 过期过快

c# - 如何将包含逗号分隔字符串值的字典转换为键值对集合?

c# - 两种型号之间的差异

c# - 简单的注入(inject)器防止锁定容器

c# - NHibernate SQL 创建导致错误

c# - 如何在 Windows 中开发服务器

c# - C# 中的四舍五入小数值

c# - 尝试在 View 中迭代列表时出现错误消息

c# - 检查 "Querystring is needed, else redirect"最合适的位置在哪里?

c# - WMI 异常 : "COM object that has been separated from its underlying RCW cannot be used"