一、委託和事件
c#中的委託類似於c或c++中的函式指標。使用委託使程式設計師可以將方法引用封裝在委託物件內。然後可以將該委託物件傳遞給可呼叫所引用方法的**,而不必在編譯時知道將呼叫哪個方法。與c或c++中的函式指標不同,委託是物件導向、型別安全的,並且是安全的。
宣告方法:
[ 屬性 ] [ 委託修飾符 ] delegate 返回型別 識別符號 ( [形參表] );
委託宣告定義一種型別,它用一組特定的引數以及返回型別封裝方法。對於靜態方法,委託物件封裝要呼叫的方法。對於例項方法,委託物件同時封裝乙個例項和該例項上的乙個方法。如果您有乙個委託物件和一組適當的引數,則可以用這些引數呼叫該委託。
using system;
namespace myclasstest
!", s);
}
public static void goodbye(string s) !", s); }
public static void main() }}
執行結果:
invoking delegate a:
hello,a;
invoking delegate b:
goodbye,b;
invoking delegate c:
hello,c!
goodbye,c!
invoking delegate d:
goodbye,d!
二、事件
事件為類和類的例項提供了向外界傳送通知的能力。形象地說,事件(event)就是類或物件用來「發出通知」的成員。通過提供事件的控制代碼,客戶能夠把事件和可執行**聯絡在一起。
1、事件的宣告
事件的宣告分為兩種,一種是事件域宣告,一種是事件屬性宣告。
事件域宣告的格式如下:
[事件修飾符] event 事件型別 事件名;
事件屬性宣告的格式如下:
[事件修飾符] event 事件型別 事件名 ;
事件的型別(type)則必須是乙個委託型別,而此委託型別應預先宣告。
2、事件的預訂和撤消
事件的預訂是通過為事件加上左運算子「+=」來實現的。
okbutton.click+=new eventhandler(okbuttonclick);
這樣,只要事件被觸發,方法就會被呼叫。
事件的撤消則採用左操作符「-=」:
okbutton.click-=new eventhandler(okbuttonclick);
例:public class logindialog: form
void okbuttonclick(object sender, eventargs e)
}
c 物件導向程式設計 物件導向
什麼是物件導向 是對現實世界理解和抽象的方法。物件導向程式設計的特點 易維護,易擴充套件,靈活性好,重用 類 對事物的抽象定義,即事物具有的共同特徵和行為。物件 即對類進行例項 類是抽象的,物件是具體的 類的定義 語法 訪問修飾符 class 類名類的成員 包括字段,屬性,方法,常量,事件和索引器等...
物件導向程式設計(C )學習筆記三
對於class型別,必須用new delete來建立銷毀物件,malloc free是無法勝任的。new 動態建立乙個物件 1 申請一塊記憶體 2 內部呼叫了建構函式 delete 釋放這個物件 1 呼叫了析構函式 2 釋放記憶體 動態建立乙個物件 circle c new circle 預設建構函...
C 物件導向程式設計
1.1 類與物件 物件 object 是類 class 的乙個例項 instance 如果將物件比作房子,那麼類就是房子的設計圖紙。所以物件導向程式設計的重點是類的設計,而不是物件的設計。類可以將資料和函式封裝在一起,其中函式表示了類的行為 或稱服務 類提供關鍵字public protected 和...