2012-05-07 198 views
6

如果我有這樣的一個事件:是否可以在C#中訂閱事件訂閱?

public delegate void MyEventHandler(object sender, EventArgs e); 
public event MyEventHandler MyEvent; 

,並增加了一個這樣的事件處理程序:

MyEvent += MyEventHandlerMethod; 

...它則可能以某種方式登記呢?換句話說 - 是否有這樣的東西:

MyEvent.OnSubscribe += MySubscriptionHandler; 

回答

6

可以特別聲明事件訪問器,即添加和刪除訪問器。

這樣做可以在添加新事件處理程序時執行自定義邏輯。

1

當你定義你的事件時,你可以使用更長的格式來執行更多的代碼,當人們附加或從喲你的活動。

查看關於addremove關鍵字的信息。

1

,如果你宣佈你的自定義事件,這樣這是可能的:

class MyClass 
{ 


    public event EventHandler MyEvent 
    { 
     add {  //someone subscribed to this event ! } 
     remove {  //someone unsubscribed from this event ! } 
    } 


    ... 
} 
1

我猜,你正在尋找的事件訪問。自定義對用戶的引用的方法。這裏是你如何能做到這

public class TestClass 
{ 

    private event EventHandler UnderlyingEvent; 
    public event EventHandler TestEvent 
    { 
     add 
     { 
      UnderlyingEvent += value; 
     } 
     remove 
     { 
      UnderlyingEvent -= value; 
     } 
    } 
} 

欲瞭解更多信息,請訪問本文

http://msdn.microsoft.com/en-us/magazine/cc163533.aspx