Предоставление делегата через свойства в C # - PullRequest
0 голосов
/ 08 июля 2011

Как я могу выставить делегата через свойство?Я выставляю делегата, который является членом третьего класса, через мой класс.

public CardInformationAvailable OnDataRecieve //CardInformationAvailable is a delegate type
{
   set
   {
       _cardReaderBase.OnDataReady += value;  // OnDataReady is a delegate of type   
                                              //CardInformationAvailable 
       // Where will  i call -=value?
   }
}

Ответы [ 2 ]

4 голосов
/ 08 июля 2011

Не уверен на 100% в вопросе, но вы можете обернуть события таким образом, если хотите показать через свой класс.Но, как уже упоминали другие, вы можете просто добавить событие непосредственно в _cardReaderBase?

public CardReader
{
   public event OnDataReady;
   private CardReaderBase _cardReaderBase;

   public event OnDataReady OnDataReadyEvent
   {
      add 
      {
         _cardReaderBase.OnDataReady += value;
      }
      remove
      {
         _cardReaderBase.OnDataReady -= value;
      }
   } 
}
0 голосов
/ 08 июля 2011

Вы можете поставить как if условие для параметра Null.Другими словами что-то вроде этого:

  public CardInformationAvailable OnDataRecieve 
  {

    set
    {

         if(value == null)
           _cardReaderBase.OnDataReady -= value;
         else
           _cardReaderBase.OnDataReady += value; 

     }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...