正如 Konamiman 所说,您可以非常轻松地声明自己的委托类型。在我的"versions" page 上,我已经声明了它们,所以你可以剪切和粘贴它们:
public delegate void Action();
public delegate void Action<T1, T2>(T1 arg1, T2 arg2);
public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3);
public delegate void Action<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
public delegate TResult Func<TResult>();
public delegate TResult Func<T, TResult>(T arg);
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
(我没有避免在此处滚动,因为您可能不希望 IDE 中出现换行符。请注意,Action<T> 是 .NET 2.0 的一部分,因此上面没有。)