c# - 动态函数列表并动态调用它们

标签 c# .net c#-4.0 dynamic

我希望能够将各种静态方法存储在一个列表中,然后查找它们并动态调用它们。

每个静态方法都有不同数量的参数、类型和返回值

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/

相关文章:

c# - 如何在 Windows 7 中模拟内存不足的情况

c# - 我应该重用表适配器实例吗?

C# 泛型方法并返回在 xml 方法中创建的参数化类型的对象

c# - 如果程序最小化或在系统托盘中,如何检测 ctrl 键被按下两次

c# - 对多个方法 C# 使用单个事务

c# - 动态创建控件时不显示 PDF 文档

c# - 如何从另一种方法结束 filewatcher?

C#:正确使用 Wea​​kReference IsAlive 属性

.net - 构建此 Linq-to-Events 拖放代码的最佳方法是什么?

c# - Task.Factory.StartNew 或 Parallel.ForEach 用于许多长时间运行的任务?