我在我正在编写的应用程序中使用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中提供很酷的东西,那么如果可以的话,我也不会感到惊讶。
答案 0 :(得分:1)
你不可能获得用作函数调用参数的变量名 - 如果它们根本不是变量会发生什么?
最接近你想要做的事情,我能想到的是一个匿名的对象:
new { Param1, Param2, Param3 }
这是:
的简写new { Param1 = Param1, Param2 = Param2, Param3 = Param3 }
然后,您可以使用反射来查找它们。我不确定订单是否有保证 - 你需要吗?