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