c# 3.0中的动作

本文关键字: | 更新日期: 2023-09-27 18:07:13

我正在编写一个c# . net 3.0对WCF服务的异步调用。我得到以下错误:

错误1使用泛型类型"System"。操作'需要'1'类型参数。

但是在。net 3.5中这样做时不会出现错误。. net 3.0不支持这个吗?或者我做错了。我必须使用。net 3.0,因为我正在为XPe编写一个应用程序。

我的代码是这样的

AsyncCallback aSyncCallBack =
delegate(IAsyncResult result)
{
    try
    {
        service.EndSubscribe(result);
        this.Dispatcher.BeginInvoke((Action)delegate
        { DGStudent.ItemsSource = test; });
    }
    catch (Exception ex)
    {
        this.Dispatcher.BeginInvoke((Action)delegate
        { MessageBox.Show(ex.Message); });
    }
};

c# 3.0中的动作

非泛型System.Action是在。net 3.5中引入的,不能从。net 3.0中使用。编译器认为您指的是需要类型参数的泛型System.Action<T>

除了Action<T>之外的所有Action委托都是在。net 3.5中添加的;它们在3.0中不可用。如果你看一下文档,Action文档只有3.5和4.0的版本,而Action<T>文档回到了2.0。

您必须创建自己的无参数委托版本,或者使用类似于winforms中的MethodInvoker的东西。

相关文章:
  • 没有找到相关文章