2012-07-09 14 views
1

嗨,我在Windows上開發一個應用程序rt.I試圖使用Action,但它說它不是一個有效的winrt類型。我無法找到任何有關它的來源,可以進一步闡述。在winrt API中的行動委託

我的代碼

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

'Talk.To.Utilities.IO.Socket.TcpSocketAsyncEventArgs.OnNetworkDown(System.Action)' 具有參數類型 'System.Action' 的 'NetworkEventHandler'。 'System.Action'不是有效的Windows運行時參數類型。

所以請指導我正確的方向。

+0

你可以發佈一些示例代碼,以及確切的編譯器錯誤消息嗎? – nemesv 2012-07-09 14:36:26

+0

也更新_OnNetworkDown聲明原型。看起來像+運營商是罪魁禍首 – Tilak 2012-07-09 14:50:28

+0

如何定義_OnNetworkDown? – 2012-07-10 16:21:47

回答

1

您無法使用管理類型操作使用委託來執行此操作。

public delegate void NetworkEventHandler(); 

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

但你也可以直接暴露事件給公衆,這將語言投影啓用對更自然地融入到像JavaScript等語言。