Делегат действия в winrt api

Привет, я разрабатываю приложение для Windows rt. Я пытался использовать Action, но он говорит, что это недопустимый тип winrt. Мне не удалось найти какой-либо источник об этом, который мог бы уточнить подробности.

мой код

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

«Talk.To.Utilities.IO.Socket.TcpSocketAsyncEventArgs.OnNetworkDown(System.Action)» имеет параметр «NetworkEventHandler» типа «System.Action». «System.Action» не является допустимым типом параметра среды выполнения Windows.

Так что, пожалуйста, направьте меня в правильном направлении.


person rakesh    schedule 09.07.2012    source источник
comment
Можете ли вы опубликовать пример кода и точное сообщение об ошибке компилятора?   -  person nemesv    schedule 09.07.2012
comment
также обновите прототип объявления _OnNetworkDown. Похоже, оператор + виноват   -  person Tilak    schedule 09.07.2012
comment
Как определяется _OnNetworkDown?   -  person Jiaji Wu    schedule 10.07.2012


Ответы (1)


Вы не можете использовать действие типа «управляет», используйте для этого делегата.

public delegate void NetworkEventHandler();

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

Но вы также можете опубликовать событие напрямую, это позволит языковой проекции еще более естественно интегрировать его в другие языки, такие как JavaScript.

person Kolja    schedule 31.07.2012