C# C回调不起作用
我使用Microsoft R Visual C 2005编译器版本8.00.50727.4927定义了一个将另一个函数作为参数的函数,但我遇到了一个奇怪的错误 以下是函数定义:C# C回调不起作用,c#,.net,C#,.net,我使用Microsoft R Visual C 2005编译器版本8.00.50727.4927定义了一个将另一个函数作为参数的函数,但我遇到了一个奇怪的错误 以下是函数定义: public ManagementScope ConnectComputerWMI(string computerName, string username, string password, Action callbackProcessEnd) {... } 下面是错误: error CS0305
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需要什么类型。错误消息使它看起来好像不知道非泛型Action委托,我能想到的唯一原因是您的目标是.NET 2.0。在.NET2.0中,只有操作存在;在.NET3.5中引入了更多版本,在.NET4中甚至引入了更多版本 编辑:我刚刚看到您正在使用VisualStudio2005,这意味着您的目标是.NET2.0。您是否有指定.NET 4的问题的以前版本?我可以发誓你做了 这就是问题所在。。。现在有各种各样的解决方案。您可以声明自己的委托:
public delegate void Action();
或者您可以使用或,它具有等效的签名,但不幸的是在Windows窗体命名空间中-如果您不使用Windows窗体,则不理想
或者您可以升级到更现代的Visual Studio和.NET版本。错误消息使它看起来好像不知道非通用操作委托,我能想到的唯一原因是您的目标是.NET 2.0。在.NET2.0中,只有操作存在;在.NET3.5中引入了更多版本,在.NET4中甚至引入了更多版本 编辑:我刚刚看到您正在使用VisualStudio2005,这意味着您的目标是.NET2.0。您是否有指定.NET 4的问题的以前版本?我可以发誓你做了 这就是问题所在。。。现在有各种各样的解决方案。您可以声明自己的委托:
public delegate void Action();
或者您可以使用或,它具有等效的签名,但不幸的是在Windows窗体命名空间中-如果您不使用Windows窗体,则不理想
或者您可以升级到更现代的Visual Studio和.NET版本。如何调用此函数?你能发布它和传入函数的定义吗?你如何调用这个函数?你能发布它和传入操作的定义吗?+1-你可能是对的:使用Microsoft R Visual C 2005编译器。旁注:System.Action是在.NET3.5中引入的。@Fredrik:我想这是后来添加的。。。我可以发誓它最初说的是.NET4。@Jon:它出现在3.5文档中:@Fredrik:是的,它是在.NET3.5中引入的。我的观点是,这个问题最初声称他使用的是.NET4,我相信。Action是在2.0中引入的。但是3.5.+1中的操作-您可能是对的:使用Microsoft R Visual C 2005编译器。旁注:System.Action是在.NET3.5中引入的。@Fredrik:我想这是后来添加的。。。我可以发誓它最初说的是.NET4。@Jon:它出现在3.5文档中:@Fredrik:是的,它是在.NET3.5中引入的。我的观点是,这个问题最初声称他使用的是.NET4,我相信。Action是在2.0中引入的。但是3.5中的行动。