如何在.NET Framework 2.0中模拟“Func <(Of )>)委托”?

我尝试使用VB.NET中的CodeProject文章和.NET Framework 2.0中的类。

似乎编译除了这一行Private _workerFunction As Func(Of TResult)和方法标题Public Sub New(ByVal worker As Func(Of TResult))

我可以在MSDN上找到.NET 3.5支持的这些新代理(Func(Of …))。

如何重写它以在.NET 2.0中工作?

幸运的是,.NET 2.0已经支持generics,因此您可以使用相同的签名创建自己的委托:

 public delegate T Func(); 

正如Konamiman所说,您可以非常轻松地声明自己的委托类型。 在我的“版本”页面上 ,我将它们全部声明,以便您可以剪切并粘贴它们:

 public delegate void Action(); public delegate void Action(T1 arg1, T2 arg2); public delegate void Action(T1 arg1, T2 arg2, T3 arg3); public delegate void Action(T1 arg1, T2 arg2, T3 arg3, T4 arg4); public delegate TResult Func(); public delegate TResult Func(T arg); public delegate TResult Func(T1 arg1, T2 arg2); public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3); public delegate TResult Func(T1 arg1, T2 arg2, T3 arg3, T4 arg4); 

(我没有避免在这里滚动,因为你可能不想在IDE中使用换行符。注意Action是.NET 2.0的一部分,因此它不在上面。)