C 事件訂閱 退訂簡單實現原理

2021-08-28 02:49:22 字數 1409 閱讀 7574

這裡以汽車經銷商、顧客為例說明(當顧客訂閱了汽車資訊後,就能夠接受汽車經銷商傳送的訊息)

1、新建乙個事件監聽類,如下所示:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace cardealer

/// /// 建構函式

///

///

public carinfoeventargs(string car)

}//class_end

/// /// 汽車經銷商

///

public class cardealer

remove

}public void newcar(string car)

");newcarinfo?.invoke(this,new carinfoeventargs(car));

}protected virtual void raisenewcarinfo(string car)}}

2、新建乙個顧客類

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.windows;

namespace cardealer

/// /// 訂閱汽車訊息的方法

///

/// 訊息傳送者

/// 傳送的訊息

public void newcarishere(object sender,carinfoeventargs e)

: car is new ");

}}//class_end

}

3、實現經銷商新增新的汽車資訊及其顧客訂閱汽車資訊及其退訂汽車資訊

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

namespace cardealer

}//class_end

}

4、執行結果如下:

c 訂閱事件

this.btnzmaocal 0.click new eventhandler btnzmaocal click this.btnzmaocal 1.click new eventhandler btnzmaocal click this.btnzmaocal 2.click new eventh...

顯示實現事件訂閱與登出

當我們定義乙個事件的時候,缺省會多出兩個方法,分別是新增,和刪除的方法 譬如public event eventhander myevent 我定義了這麼乙個事件 那麼實際上il中會多出2個方法,大概是下面這樣的 private event eventhander myevent 原來的public...

C 事件發布與訂閱例題

要求 實現多個書店對應多個客戶的到書通知,且圖書領域與顧客的興趣領域一致才通知顧客 分析 首先,分析物件和屬性 書店 名稱 顧客 興趣領域 名稱 分析函式 興趣領域函式 書店 事件函式 新書到店 名稱函式 get set 顧客 名稱興趣領域函式 get set 通知函式 輸出語句 通知函式與事件函式...