如何在List中存储代理
如何将委托(命名,匿名,lambda)存储在通用列表中? 基本上我正在尝试构建一个委托字典,从中我可以使用密钥访问存储的委托并执行它并按需返回值。 是否可以在C#4中完成? 有什么想法来完成它吗? 注意:异类列表更适合存储任何类型的委托。
System.Collections.Generic.Dictionary
不够吗?
嗯,这是一个简单的例子:
class Program { public delegate double MethodDelegate( double a ); static void Main() { var delList = new List {Foo, FooBar}; Console.WriteLine(delList[0](12.34)); Console.WriteLine(delList[1](16.34)); Console.ReadLine(); } private static double Foo(double a) { return Math.Round(a); } private static double FooBar(double a) { return Math.Round(a); } }
public delegate void DoSomething(); static void Main(string[] args) { List lstOfDelegate = new List (); int iCnt = 0; while (iCnt < 10) { lstOfDelegate.Add(delegate { Console.WriteLine(iCnt); }); iCnt++; } foreach (var item in lstOfDelegate) { item.Invoke(); } Console.ReadLine(); }
Dictionary> fnDict = new Dictionary>(); Func fn = (a) => a + 1; fnDict.Add("1", fn); var re = fnDict["1"](5);