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