深入理解 c 第二章 簡單的委託使用

2021-08-18 02:48:43 字數 1751 閱讀 3813

delegate void stringprocessor(string input);

class person

public void say(string message)

says: ", name, message);}}

class background

)", note);}}

[description("listing 2.1")]

class ******delegateuse

}

delegate void stringprocessor(string input);
宣告委託的型別 

public void say(string message)

says: ", name, message);

}

宣告相容的例項方法

public static void note(string note)

)", note);

}

相容的靜態方法

stringprocessor jonsvoice, tomsvoice, background;

jonsvoice = new stringprocessor(jon.say);

tomsvoice = new stringprocessor(tom.say);

background = new stringprocessor(background.note);

建立三個委託例項

jonsvoice("hello, son.");

tomsvoice.invoke("hello, daddy!");

background("an airplane flies past.");

呼叫委託例項

先宣告委託型別,接著建立兩個方法,都與委託相容。 乙個例項方法 person.say 乙個是靜態方法 background.note

建立了,兩個person 類的例項

jonsvoice呼叫的 是name 為 jon的 那個person物件的 say 方法

tomsvoice呼叫的 是name 為 tom的 物件的 say方法

呼叫委託有兩種, 顯示呼叫invoke 或者 c#的簡化

為什麼要委託,委託就是把指令給別人,讓別人來執行

如果你想單擊某個按鈕,發生某些事情,但又不想或者不能改變 按鈕的**,就可以用委託

委託其實是間接的完成事情

變得更靈活,而不是不斷地改**

輸入

jonsvoice = new stringprocessor(jon.say);

tomsvoice = new stringprocessor(tom.say);

background = new stringprocessor(background.note);

jonsvoice("hello, son.");

tomsvoice.invoke("hello, daddy!");

background("an airplane flies past.");

結果jon says: hello, son.

tom says: hello, daddy!

(an airplane flies past.)

第二章 深入理解helloworld

1 static int init initialization function void 2 5module init initialization function 這裡要特別提出的就是,呼叫初始化函式當中的錯誤處理。由於初始化函式會呼叫很多的註冊設施函式,每乙個函式都有可能失敗,所以必須檢查...

深入理解 c 第二章 C 2在委託例項化上的改進

class simplifieddelegates static void main handler null,eventargs.empty handler delegate handler null,eventargs.empty mouseeventhandler mousehandler h...

深入理解bootstrap框架之第二章整體架構

一.整體架構 1.css 12柵格系統 把網頁寬度均分為12等分 保留15位精度 這是bootstrap的核心功能。2.基礎布局元件 包括排版 按鈕 布局 表單等等。3.jquery bootstrap外掛程式的基礎 4.響應式設計 相容多個終端。這是bootstrap的終極理念。5.css外掛程式...