仍然围绕着代表们,我很好奇:是否有可能超载匿名函数?
这样:
delegate void Output(string x, int y);
支持:
Output show = (x, y) => Console.WriteLine("{0}: {1}", x.ToString(), y.ToString());
和
delegate void Output(string x, string y);
允许:
show( "ABC", "EFG" );
和
show( "ABC", 123 );
答案 0 :(得分:3)
不,你不能像这样重载委托。
这是一种类型
delegate void Output(string x, int y);
将其更改为:
delegate void Output(string x, string y);
会重新定义它。
这有点像定义两个具有相同名称的不同类(在同一名称空间中)。
答案 1 :(得分:2)
您可以使用Generic Delegates。
public delegate void Output<T1,T2>(T1 x, T2 y);