亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

北大青鳥課程之:C#委托與事件(一)

一、在控制臺下使用委托和事件

通州北大青鳥學校學術部老師講解:我們都知道,C#中有“接口”這個概念,所謂的“接口”就是定義一套標準,然后由實現類來具體實現其中的方法,所以說“接口,是一組類的抽象”。同樣道理,我們可以將“委托”理解為“方法的抽象”,也就是說定義一個方法的模板,至于這個方法具體是怎么樣的,就由方法自己去實現。(北大青鳥課程

北大青鳥學校學術部丁老師講解:接口的最大好處就是可以實現多態,同理,“委托”是可以實現方法的多態,當我們想調用某個具體方法的時候,我們不直接調用這個方法,而是去調用這個委托。當然,我們必須在具體方法和委托之間建立某種關聯。

北大青鳥學校學術部丁老師舉例:

首先,我們定義一個委托:
public delegate void SaySomething(string name);

這跟抽象方法的語法格式很相似,只是多了一個關鍵字delegate。既然是對方法的一種抽象,那么我們最關注的當然就是方法的返回值以及方法的參 數了。所以上面紅色的部分就是我們定義出來的一個規矩,如果某個方法想委托我去做事,那么請你遵循我的規矩,就是返回值為void,參數為一個字符串。我 們這個委托的含義是,當某個人來了,就向他說點東西。(北大青鳥學校,北大青鳥課程)

好,既然我們已經定義了這個規矩,下面我們就定義具體的方法了。
public void SayHello(string name)
{
    Console.WriteLine("Hello," + name + "!");
}

public void SayNiceToMeetYou(string name)
{
    Console.WriteLine("Nice to meet you," + name + "!");
}
我們這里一共定義了兩個方法,一個是向某人說Hello,另一個是向某人說Nice to meet you。我們看到,這里定義的兩個方法的返回值和參數跟我們前面定義的“委托”是一致的。(北大青鳥學校,北大青鳥課程)

接下來,我們來看事件。
public event SaySomething come;

我們定義了一個事件,這個事件是“有人來了”,注意定義的時候我們使用event關鍵字,除此之外,我們還加上了前面定義的“委托”的名字。這個意 思是說,我這個事件只會跟“SaySomething”打交道,并且,當我這個事件發生的時候,我會通知關注我的這些“委托”(再由這些“委托”去調用具 體的方法)。

我們來定義一個測試方法:
public void test() {
    SaySomething sayhello = new SaySomething(SayHello);
    SaySomething saynice = new SaySomething(SayNiceToMeetYou);
    come += sayhello;
    come += saynice;
    come("張三");
}

方法體中的前面兩行是用來實例化委托,注意我們用到了new關鍵字,就好像實例化一個類一樣,然后傳入一個參數,但這個參數不是string類型、也不是int類型,而是一個方法名。(北大青鳥學校,北大青鳥課程

再下面兩行就是將委托加到事件上,意思是說,如果你這個事件發生了,就告訴我一聲?梢酝ㄟ^“+=”來將n個委托實例加到某個事件上,一旦這個事件發生,所有的這些委托實例都會得到通知。

最后一行是觸發一個事件,注意我們是直接用一個事件名,然后跟一個參數,這又跟“委托”中定義的那個規矩一致(即,要有一個string類型的參數)。

最后運行一下

我們回過頭來再看一下“事件”的定義:
public event SaySomething come;
這里已經指出了“委托”的名字,所以,我們可以直接將方法加到事件上,而省略“委托”的實例化過程,因此上面的test()方法可以簡單寫為:
public void test() {
    come += SayHello;
    come += SayNiceToMeetYou;
    come("張三");
}
北大青鳥學校學術部提供北大青鳥課程(未完待續)

北大青鳥網上報名
北大青鳥招生簡章
主站蜘蛛池模板: 在线免费观看一级片 | 欧美精选欧美极品 | 亚洲精品日韩一区二区 | 欧美 亚洲 在线 | 亚洲天堂美女 | 成人自拍视频在线 | 日韩经典一区 | 99在线在线视频免费视频观看 | 97se亚洲综合在线韩国专区福利 | 二区久久国产乱子伦免费精品 | 香港三级日本三级人妇三级四 | 欧美—级v免费大片 | 日本视频在线免费观看 | 国产微拍精品福利视频 | 久久综合色播 | 亚洲国产欧美国产综合一区 | 日韩一级a毛片欧美一级 | 最新国产美女肝交视频播放 | 亚洲精品国产第一区第二区国 | 91精品久久久久久久久久 | 欧美特一级| 日韩视频免费一区二区三区 | 成人亚洲国产综合精品91 | 免费黄网在线观看 | 在线精品视频免费观看 | 一区二区三区在线播放视频 | 男人天堂网址 | 韩国免又爽又刺激激情视频 | 国产手机在线国内精品 | 久久性妇女精品免费 | 一级黄色α片 | 欧美日韩在线观看一区二区 | 精品在线播放视频 | 精品视自拍视频在线观看 | 久草在现| 国产成人一区二区三中文 | 一级毛片不卡免费看老司机 | 日本美女黄色一级片 | 免费一区二区三区四区五区 | 成人怡红院视频在线观看 | 亚洲最大网址 |