【问题标题】:Action delegate in winrt apiwinrt api 中的动作委托
【发布时间】:2012-07-08 23:24:18
【问题描述】:

您好,我在 windows rt 上开发了一个应用程序。我尝试使用 Action,但它说它不是有效的 winrt 类型。我找不到任何可以进一步详细说明的来源。

我的代码

public  void OnNetworkDown(Action NetworkEventHandler )
{
    _OnNetworkDown += NetworkEventHandler;
}

'Talk.To.Utilities.IO.Socket.TcpSocketAsyncEventArgs.OnNetworkDown(System.Action)' 具有“System.Action”类型的参数“NetworkEventHandler”。 “System.Action”不是有效的 Windows 运行时参数类型。

所以请指引我正确的方向。

【问题讨论】:

  • 你能发布一些示例代码,以及确切的编译器错误消息吗?
  • 还更新了 _OnNetworkDown 声明原型。似乎 + 运算符是罪魁祸首
  • _OnNetworkDown 是如何定义的?

标签: c# delegates windows-runtime .net-4.5


【解决方案1】:

您不能使用管理类型 Action 使用委托来执行此操作。

public delegate void NetworkEventHandler();

public  void AddNetworkDownHandler(NetworkEventHandler handler)   
{      
 _OnNetworkDown += handler;
}

但您也可以直接向公众公开事件,这将使语言投影能够更自然地集成到其他语言中,例如 JavaScript。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多