我正在定义一个函数,它将另一个函数作为参数(使用Microsoft(R)Visual C#2005编译器版本8.00.50727.4927)但我得到一个奇怪的错误。
这是功能定义:
public ManagementScope ConnectComputerWMI(string computerName,
string username, string password,
Action callbackProcessEnd) {... }
这是错误:
error CS0305: Using the generic type 'System.Action<T>' requires '1' type arguments
我不确定System.Action需要什么类型。
答案 0 :(得分:6)
错误消息使它看起来不知道非通用Action
委托,我能想到的唯一原因是你的目标是.NET 2.0。在.NET 2.0中,只存在Action<T>
;在.NET 3.5中引入了更多版本,在.NET 4中引入了更多版本。
这就是问题......现在有各种解决方案。您可以声明您自己的委托:
public delegate void Action();
或者你可以使用MethodInvoker
或(它具有相同的签名,但不幸的是在Windows窗体命名空间中 - 如果你不使用Windows窗体则不理想)...
或者您可以升级到更现代版的Visual Studio和.NET。