110,566
社区成员
发帖
与我相关
我的任务
分享
private static void t1()
{
}
private static void t2(int a)
{
}
private static void t3(string a, int b)
{
}
private static string t4(int a)
{
throw new NotImplementedException();
}
以及测试 Delegate proc;
proc = new Action(t1);
proc = new Action<int>(t2);
proc = new Action<string, int>(t3);
proc = new Func<int, string>(t4);
你可以看到 proc 可以引用任何一个方法。这里都说了4种了,返回值也不同。
如果你说“我不知道 proc 应该给几个参数啊?”,这其实就是你没有使用委托的抽象造成的。Delegate proc;
........
if (proc is MyAction1)
((MyAction1)proc)(......);
else if(proc is MyAction2)
((MyAction2)proc)(....);