C 的委託與事件

2021-09-23 14:02:19 字數 1251 閱讀 4292

首先我們來討論乙個問題,給你乙個變數curseason,當curseason=spring,輸出花盛開,蜜蜂採蜜,當curseason的值改變時輸出別的,部分同學可能會覺得很簡單,直接就給出了**

if(curseason==spring)

else if(curseason==summer)

else if(curseason==autumn)

else if(curseason==winter)

那麼這段**應該寫到哪去呢,新增到乙個迴圈裡面讓它每幀都執行這個判斷?況且後面curseason假如有別的情況,擴充套件起來相對麻煩

這時候我們便可以引入事件機制

使用事件,我們可以輕易實現事件驅動的程式方式,

大大降低類之間的耦合程度

using system;

public enum season

//delegate宣告

public delegate void onseasonchanged(season s);

public class cweather

set}

}}public class cflower

public void onenterseason(season s)

}}public class cbee

public void onenterseason(season s)

}}class program

====", season.spring);

w.curseason = season.spring;

console.writeline("*****===", season.summer);

w.curseason = season.summer;

console.writeline("*****===", season.autumn);

w.curseason = season.autumn;

console.writeline("*****===", season.winter);

w.curseason = season.winter;

console.readline();

}}

閱讀以上**,是不是覺得事件使用起來特方便,只需在擴充套件的類中使用」+操作「新增乙個事件監聽,當curseason改變的時候它便會立馬通知裡,這時候你不需要去寫宣告if判斷,不需要去關心curseason什麼時候會改變,大大降低類之間的耦合程度。

c 委託與事件

c 委託與事件 心得 c 用委託來實現事件通知機制。委託相當與c 函式指標。整個過程涉及乙個呼叫者,乙個被呼叫者,還有就是這個委託。實現步驟有以下幾步 1.申明委託,2.定義呼叫者和呼叫的函式,3.定義被呼叫者和具體實現的函式 被呼叫的函式 1.申明委託 在包裡或者類裡,public public ...

C 委託與事件

在c 中,委託類似於c 中的 機制,宣告乙個委託型別,可以分別採用例項方法和靜態方法例項化了委託,所不同的是採用靜態方法例項化的委託,它的 target 屬性為null 而用例項方法例項化的委託,它的 target 屬性為該例項。但是這裡要注意,如果你用 console.writerline del...

C 委託與事件

1.泛型委託 泛型型別 是可適應對多種資料型別執行相同功能的單個程式設計元素。定義泛型類或過程時,無需為可能需要對其執行該功能的每個資料型別定義單獨版本。就好比是帶有可拆卸刀頭的螺絲刀。您檢查需要擰動的螺絲,然後選擇適合該螺絲的刀頭 一字 十字 星形 將正確的刀頭插入到螺絲刀柄上後,您就可以使用螺絲...