[英]How can I clear subscriptions from one particular event handler in C#?
我一直在研究事件系統在C#中,所以我不明白你為什么不能直接訪問事件的用戶。 (我從代表開始,經歷了匿名函數和lambda語句)。 然后,我遇到了實現第一個系統時管理訂閱的問題。 我在這里很綠。
和往常一樣,Stackoverflow非常有幫助。 這個問題向我展示了如何創建清除所有用戶的功能。 就我的目的而言,這將足夠具體(清除所有並根據需要分配新的)。
我如何通知單個函數清除多個事件委托之一?
public delegate void AnEventHandler(object sender, EventArgs e);
public class EventPublisher :
{
public event AnEventHandler GroupA;
public event AnEventHandler GroupB;
public void ClearSubscribers(AnEventHandler handlerToClear)
{
handlerToClear = null;
}
}
我以為我可以這樣寫,而我的訂閱課程可以做到
(EventPublisher MyPublisher)
MyPublisher.ClearSubscribers(MyPublisher.GroupA);
但是可惜它告訴我只能將它與+ =或-=運算符一起使用,這讓我有些驚訝,因為我認為引用是可以接受的。
我也打算實現自己的add()和remove()函數。 關於它的問題是,它具有相同的問題:我需要6個事件處理程序。 當然,我不需要編寫6個並行無效函數和6對唯一的添加/刪除函數對嗎? 我的大腦在思考繼承,但點之間沒有聯系。
如果可以承受的話,將變量設置為null將刪除它的變量,然后重新設置它。
否則,你應該能夠做到這樣 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.