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外掛程式...