C#接口事件代理學(xué)習(xí)總結(jié)淺析
C#接口事件代理學(xué)習(xí)總結(jié),其中C++與C#之間語法大都基本相同,其面向?qū)ο蟮乃枷胍彩且恢碌模荂#比C++還是有很多的區(qū)別,下面就C#中新添的接口、事件、代理來談一談。
C#接口事件代理學(xué)習(xí)總結(jié)1、接口
接口是定義了類要實(shí)現(xiàn)的一系列方法,但是他自己并不實(shí)現(xiàn)它,只是以邏輯結(jié)構(gòu)的方式來描述類所提供的一系列沒有具體實(shí)現(xiàn)的方法。
簡單的接口聲明格式如下:
- interface name{
- ret-type methor-name(param-list);
- ret-type methor-name(param-list);
- ret-type methor-name(param-list);}
接口中的方法默認(rèn)為public,不用顯式指定訪問屬性。
除了方法名稱,接口還聲明了屬性、索引、和事件的名稱,任何成員都不能聲明為static.當(dāng)一個(gè)類實(shí)現(xiàn)一個(gè)接口時(shí),就必須實(shí)現(xiàn)整個(gè)接口,不能選擇要實(shí)現(xiàn)接口的哪個(gè)部分。
1.1使用接口引用
可以創(chuàng)建接口引用變量,該變量可以引用任何實(shí)現(xiàn)接口的對象。該方法是執(zhí)行對象實(shí)現(xiàn)的方法版本。這個(gè)過程類似于基類引用訪問派生類對象的情況。
1.2使用接口屬性
- type name
- {get;
- set;}
1.3接口索引
- element-type this[int index]
- {
- get;
- set;
- }
1.4顯示實(shí)現(xiàn)
創(chuàng)建接口成員的顯式實(shí)現(xiàn)由兩個(gè)原因。第一,一個(gè)類有可能同時(shí)實(shí)現(xiàn)兩個(gè)接口,每個(gè)接口都聲明了相同名字和類型的方法。因此,采用全稱作用域能消除歧義。第二,當(dāng)使用全稱作用域?qū)崿F(xiàn)一個(gè)方法時(shí),就相當(dāng)于提供了不是處于類外代碼的一個(gè)私有實(shí)現(xiàn)。
C#接口事件代理學(xué)習(xí)總結(jié)二、代理
代理就是一個(gè)可以引用方法的對象,和c\c++中的函數(shù)指針相似。
代理的建立過程就是首先聲明一個(gè)代理通過關(guān)鍵字delegate
格式如下:delegate ret_type name(papam-list)
然后通過創(chuàng)建這個(gè)代理的引用,將這個(gè)代理進(jìn)行對象實(shí)例化,也就是代理創(chuàng)建一個(gè)函數(shù)的模型,通過指定其函數(shù)的返回值、參數(shù)類型和個(gè)數(shù),那么這個(gè)這函數(shù)具體做了什么在運(yùn)行時(shí)通過賦予它的對象來決定。
之后要調(diào)用這個(gè)函數(shù),只需要將這個(gè)代理的引用直接將參數(shù)傳進(jìn)去了。
2.1多播
代理有一個(gè)比較吸引人的特性是支持多播。也就是支持創(chuàng)建方法鏈表的能力。但是使用多播有一個(gè)限制就是要函數(shù)的返回類型為void.多播時(shí)只需要通過+=來將方法加入到代理中。
C#接口事件代理學(xué)習(xí)總結(jié)三、事件
事件就是自動(dòng)通知某個(gè)事件發(fā)生。關(guān)心某事件的對象向事件中注冊事件處理,當(dāng)事件發(fā)生時(shí),就會(huì)調(diào)用所有已注冊的事件處理程序。事件處理程序要用代理來表示。
事件是類成員,并以event聲明,一般格式如下:
- event event-delegate objec-name;
所有的事件是通過代理來激活的
C#接口事件代理學(xué)習(xí)總結(jié)的內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#接口事件代理有所幫助。
【編輯推薦】

















