创建一个字符串列表,其中参数名称也是值名称

时间:2014-04-15 00:51:13

标签: c#-4.0 reflection

我在我正在编写的应用程序中使用System.Reflection很多,并且想知道是否有办法执行此任务。

我有一个方法作为库的一部分

public static string MakeEvent(string Param1, string Param2, string Param3, string Param4)    

在这个方法中,我有一个像这样设置的List

var list = new List<string>{"Param1", Param1, "Param2", Param2, "Param3", Param3, "Param4", Param4};

因为这是一个库,所以有很多这样的样式构造。

有没有办法可以获取传入的参数名称的字符串表示形式(例如Param1),将其提供给列表并按变量本身跟踪?除此之外,是否可以使用类似

的东西
public static string MakeEvent(params object[] objectData)

替换传入的字符串参数列表?

我之前没有看到过这种情况,但是如果可以在.NET中提供很酷的东西,那么如果可以的话,我也不会感到惊讶。

1 个答案:

答案 0 :(得分:1)

你不可能获得用作函数调用参数的变量名 - 如果它们根本不是变量会发生什么?

最接近你想要做的事情,我能想到的是一个匿名的对象:

new { Param1, Param2, Param3 }

这是:

的简写
new { Param1 = Param1, Param2 = Param2, Param3 = Param3 }

然后,您可以使用反射来查找它们。我不确定订单是否有保证 - 你需要吗?