c 物件導向程式設計(三)

2021-06-02 22:33:14 字數 1353 閱讀 9824

一、委託和事件

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 和...