我在编写的应用程序中经常使用System.Reflection,我想知道是否有办法完成这项任务。
我有一个方法作为库的一部分
public static string MakeEvent(string Param1, string Param2, string Param3, string Param4)
在这个方法中,我有一个像一样设置的列表
var list = new List<string>{"Param1", Param1, "Param2", Param2, "Param3", Param3, "Param4", Param4};
由于这是一个库,所以有很多这样的样式构造。
有没有一种方法可以让我获取传入的参数名称的字符串表示形式(例如Param1),将其输入到列表中,然后在其后面加上变量本身?除此之外,是否可以使用类似的东西
public static string MakeEvent(params object[] objectData)
以替换传入的字符串参数列表?
我以前从未见过这样做,但考虑到.NET中可能存在的酷东西,如果可以的话,我不会感到惊讶。
您不可能将变量名用作函数调用的参数-如果它们根本不是变量,会发生什么?
我能想到的最接近你想做的事情是一个匿名对象:
new { Param1, Param2, Param3 }
这是的缩写
new { Param1 = Param1, Param2 = Param2, Param3 = Param3 }
然后,您可以使用反射来找出它们。不过,我不确定订单是否有保证——你需要吗?