C 委託 事件 學習

2021-09-06 04:49:09 字數 1817 閱讀 6462

1.委託delegate

委託delegate也是一種型別,在任何可以宣告類的地方都可以宣告委託,它將方法當做另乙個方法的引數進行傳遞,這樣就可以傳遞不同的方法,完成不同的功能,使程式具有很好的可擴充套件性。

舉例:假設這裡有一台電腦,有人會用它寫程式,有人會用它打遊戲,有人會用它看電影,有人會用它邊聽**邊玩遊戲,有人會用它邊聽**邊看文件,邊上qq。

這台電腦可以抽象成乙個類computer,裡面有個方法dowork,所有的人都要通過這個方法來做自己的事情。

不用委託的時候我們可以實現一些固定的東西,不夠靈活:

例如:

class program 

}public

class computer

", name, work);

}}

上面的**,很死板,呼叫dowork的時候只能做一件事情。

所以下面輪到委託登場了。

**如下:

public

delegate

void workeventhandle(string name);

class program

static

void do1(string name) 在上qq!

", name);

console.writeline("

在聽**!

", name);

console.writeline("

在玩遊戲!

", name);

}static

void do2(string name) 在聽**!

", name);

console.writeline("

在寫**!

", name);}}

public

class computer

}

委託總結:

優點:委託可以作為方法的乙個引數來傳遞。誰要呼叫computer裡的dowork來完成自己的事情,誰就實現委託繫結的方法,這樣就可以按照自己的需求傳遞不同的方法,使程式具有了很好的擴充套件性。

缺點:我們可以隨意的給委託進行賦值,這樣就破壞了程式的封裝性。

2. 事件

為了彌補委託的缺陷,所以事件出現了,我們只能對事件進行「+=」和「-=」操作,不可以對事件進行賦值(=)操作。
上面的例項用事件實現如下:
public

delegate

void workeventhandle(string name);

class program

static

void do1(string name) 在上qq!

", name);

console.writeline("

在聽**!

", name);

console.writeline("

在玩遊戲!

", name);

}static

void do2(string name) 在聽**!

", name);

console.writeline("

在寫**!

", name);}}

public

class computer

}}

總結:
委託既可以進行「+=」和「-=」操作,也可以進行賦值(=)操作,委託不具有封裝性
事件只可以進行「+=」和「-=」操作,事件具有封裝性。

c 委託事件

1,什麼是委託 委託是什麼?從生活理解就像是你是乙個c 程式設計師,你對c 並不了解,當需要進行c 分析的時候你委託給你的一位懂c 的同事幫你來完成 在c 中,委託的作用是這樣描述的 委託就像乙個函式的指標,在程式執行時可以使用它們來呼叫不同的函式。簡單點說,委託能夠引用函式,通過傳遞位址的機制完成...

C 委託事件

一 委託 委託類似於函式指標,但函式指標只能引用靜態方法,而委託既能引用靜態方法,也能引用例項方法。委託使用分三步 1 委託宣告。2 委託例項化。3 委託呼叫。例程一 程式 using system namespace 委託 private int add int num1,int num2 例中,...

C 委託事件

1 namespace222 2324 25 26 建立執行方法 27 28 29 30 31static int stratrun int count,int num count num 3233 34 35 第一步宣告委託 36 37 計算前的總數 38 數字39 計算後的總數 40public...