Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C回调不起作用_C#_.net - Fatal编程技术网

C# C回调不起作用

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

我使用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需要什么类型。

错误消息使它看起来好像不知道非泛型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中的行动。