我希望能够将各种静态方法存储在一个列表中,然后查找它们并动态调用它们。
每个静态方法都有不同数量的参数、类型和返回值
static int X(int,int)....
static string Y(int,int,string)
我想要一个可以将它们全部添加到的列表:
List<dynamic> list
list.Add(X);
list.Add(Y);
及以后:
dynamic result = list[0](1,2);
dynamic result2 = list[1](5,10,"hello")
如何在 C# 4 中执行此操作?
最佳答案
您可以创建一个委托(delegate)实例列表,为每个方法使用适当的委托(delegate)类型。
var list = new List<dynamic>
{
new Func<int, int, int> (X),
new Func<int, int, string, string> (Y)
};
dynamic result = list[0](1, 2); // like X(1, 2)
dynamic result2 = list[1](5, 10, "hello") // like Y(5, 10, "hello")
关于c# - 动态函数列表并动态调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152415/