在C#中是否可以创建匿名委托列表?这是我想要编写的代码,但它无法编译:
Action<int> method;
List<method> operations = new List<method>();
例如,您可以这样编写:
Action<int> method = j => j++;
List<Action<int>> operations = new List<Action<int>>();
operations.Add(method);
operations.Add(i => i++);
var myNum = 5;
var myops = new List<Action<int>>();
myops.Add(j => j++);
myops.Add(j => j++);
foreach(var method in myops)
{
Console.WriteLine(method(myNum));
}
// Frowned upon, but fun syntax
myops.Each(method => method(myNum));
List<T>.Each()
的lambda是一个好的方法。 - Richard可以创建特定委托类型的列表,例如Action或Func等。由于匿名委托可以转换为具有兼容签名的任何委托类型,因此只要它们具有兼容的签名,就可以创建委托列表。
我认为创建具有多种签名的委托列表并没有太大用处,因为未指定签名会使调用委托变得非常困难。但是,您可以使用反射来实现。在这种情况下,您可以使用对象列表。