我也談委托與事件

  雖然在博客園里面已經有很多關于C#委托和事件的文章,但是為了自己在學習的過程中,加深對委托的理解,我還是決定寫一下自己的心得體會。以備他日在回來復習。委托(delegate)是一個類,但是這個類在聲明的時候跟普通的類有些不同。不帶class 關鍵字等。如下:

ContractedBlock.gifExpandedBlockStart.gifView Code
static void Main(string[] args)
{
Test();
Console.ReadKey();
}
static void SayHello(string name)
{
Console.WriteLine(
"Nice to me you "+name);
}
static void SayHelloToo(string name)
{
Console.WriteLine(
"Nice to me you too!"+name);
}
public delegate void DoSomething(string name);//聲明一個委托類
static event DoSomething MyEvent; //聲明一個DoSomething類型的事件。

public static void Test()
{
DoSomething ds1
= new DoSomething(SayHello); //聲明一個DoSomething委托類型的對象
DoSomething ds2
= new DoSomething(SayHelloToo);
ds1(
"楊鳳輝"); //委托對象,相當于對應函數的指針
MyEvent
+= ds1; // 將兩個委托對象綁定到事件對象上。
MyEvent += ds2; // -=為取消綁定。
MyEvent("YFH");? //此行為觸發事件,事件觸發后會通知綁定的方法,并執行。
}

新建一個委托對象,就相當于該對象是參數(方法)的指針應用,一般事件,都是針對于某一具體的委托的事件。一個事件可以綁定多個方法,事件觸發后,綁定的方法會依次被執行。?在其他牛人的博客內,有一個很好的舉例。在Windows程序設計中,在設計器中雙擊一個按鈕button1.會自動生成該button的單擊響應函數:

   private void button1_Click(object sender, EventArgs e)
??????? {

??????? }

????你會發現幾乎所有方法都是兩個參數的:object sender, EventArgs e。微軟為這些方法定義了一個委托private System.EventHandler(object sender,EventArgs e)。我們查看:Designer.cs里面button1對象的屬性。有一個click的事件屬性,綁定了button1_Click方法。

this.button1.Click += new System.EventHandler(this.button1_Click)?。

有一點我不明白的是:事件與委托對象有關系嗎,在聲明事件的時候,也是關于某個委托的事件,而委托對象,也是關于該委托的對象。難道那么都是該委托類的對象?

轉載于:https://www.cnblogs.com/YangFengHui/archive/2011/04/17/2018929.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378503.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php錯誤攔截機制,php攔截異常怎么寫-PHP問題

php攔截異常可以通過PHP的錯誤、異常機制及其內建數set_exception_handler、set_error_handler、register_shutdown_function 來寫。首先我們定義錯誤攔截類,該類用于將錯誤、異常攔截下來,用我們自己定義的處理方式進行處理,該類放在文件名為…

智能車復工日記【4】:關于圖像的上下位機的調整問題總結

系列文章 【智能車Code review】—曲率計算、最小二乘法擬合 【智能車Code review】——坡道圖像與控制處理 【智能車Code review】——拐點的尋找 【智能車Code review】——小S與中S道路判斷 【智能車Code review】——環島的判定與補線操作 智能車復工日記【1】——菜單索引…

設計合理的實驗方案來研究陽離子改性棉織物與未改性棉的染色動力學性能

染色動力學性能研究染色的什么問題?設計合理的實驗方案來研究陽離子改性棉織物與未改性棉的染色動力學性能?并指出如何計算反映染色動力學的主要參數? 標準答案: 染色動力學研究染色速率問題。 為了研究陽離子改性棉纖維及未改性棉纖維對活性染料染色動力學性能,首先要測…

Java ArrayList toArray()方法及示例

ArrayList類的toArray()方法 (ArrayList Class toArray() method) Syntax: 句法: public Object[] toArray();public T[] toArray(T[] elements);toArray() method is available in java.util package. toArray()方法在java.util包中可用。 toArray() method is us…

小練習:新聞網站、SNS網站圖片播放器jQuery版

新聞網站和sns網站常見的圖片瀏覽器。直接看效果吧,效果預覽:http://u.vps168.com.cn/cos2004/photoView/, ie7、ie8、ff預覽正常,ie6和chrome預覽有一點小問題,研究中 作者:綠色花園 出處:htt…

SQL SERVER的鎖機制(四)——概述(各種事務隔離級別發生的影響)

SQL SERVER的鎖機制(一)——概述(鎖的種類與范圍) SQL SERVER的鎖機制(二)——概述(鎖的兼容性與可以鎖定的資源) 本文上接SQL SERVER的鎖機制(三)——概述&a…

如何測定拼色染液中,各染料在不同染色時間時,染液中殘留染料量及織物上吸附上染的染料量?

如何測定拼色染液中,各染料在不同染色時間時,染液中殘留染料量及織物上吸附上染的染料量? 標準答案: 通常依據各染料對特定波長光的吸光度具有加和性;吸光度值符合朗伯比爾定律,吸光度與濃度成正比;吸光度值分光光度計可以讀出;通過聯立方程,可以求出拼色各染料在染液中…

oracle云數據庫 免費的嗎,使用免費的Oracle云服務-創建ATP數據庫

前面我們講了在Oracle的云主機安裝數據庫,雖然現在安裝數據庫已經很簡單了,但是真正要在生產環境使用,還是需要進行很多配置和優化的,這通常需要專業的人員。而ATP(自治事務性數據庫服務)正是Oracle云提供的非常強大的數據庫云服務…

golang判斷結構體為空_如何在Golang中檢查結構是否為空?

golang判斷結構體為空The size of an empty structure is zero in Golang. Here, empty structure means, there is no field in the structure. 在Golang中, 空結構的大小為零。 在此, 空結構表示該結構中沒有字段。 Eg: 例如: Type struc…

智能車復工日記【5】:起跑線的識別與車庫入庫

博主聯系方式: QQ:1540984562 QQ交流群:892023501 群里會有往屆的smarters和電賽選手,群里也會不時分享一些有用的資料,有問題可以在群里多問問。 系列文章 【智能車Code review】—曲率計算、最小二乘法擬合 【智能車Code review】——坡道圖像與控制處理 【智能車Code re…

文本框只允許輸入數字.net/javascript

<input type"text" name"test" onKeyUp"test1.value(this.valuethis.value.replace(/\D/g,).substring(0,6)).substring(0,3)" > <br /><input name"test1" type"text" > 用Up和Down有區別 只能輸入數字、…

jquery全選,jquery全不選,jquery反選

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <title>全選&#xff0c;不…

obj[]與obj._Ruby中帶有示例的Array.rassoc(obj)方法

obj[]與obj.Array.rassoc(obj)方法 (Array.rassoc(obj) Method) In this article, we will study about Array.rassoc(obj) method. You all must be thinking the method must be doing something which is related to the insertion of a certain element. It is not as simp…

oracle平均活動會話數,Oracle11g r2的活動會話數問題解決

如果你在Oracle11g r2的活動會話數的實際操作中&#xff0c;你對Oracle11g r2的活動會話數有不解之處時&#xff0c;你可以通過以下的文章對其的實際應用與功能有所了解&#xff0c;以下是文章的具體介紹&#xff0c;望你瀏覽完以下的內容會有所收獲。在Oracle11g r2的活動會話…

請分析比較下列四種染料在相同濃度和相同溫度的水染液中的聚集度大小?

請分析比較下列四種染料在相同濃度和相同溫度的水染液中的聚集度大小? 標準答案: 染料聚集度從大到小的順序為:3〉1〉4〉2 比較1-4染料結構差異,1、2共軛體系較短,3、4共軛體系較長,1、3磺酸基在端部,2、4磺酸基在中間; 染料3共軛體系長,范德華力大,而水溶性磺酸基團…

分割范圍Codeforces Round #181 (Div. 2)

每日一貼,今天的內容關鍵字為分割范圍 標題鏈接 A &#xff0c;B雖然是水題&#xff0c;但要是沒想清晰就易容掉進某個坑里。。 C&#xff1a;預處理出有所可能的和&#xff0c;然后個每個每和分給a b兩個數 D&#xff1a;競賽的時候標題沒看懂&#xff0c;題意就是說在一個n*n…

VC++動態鏈接庫深入淺出(轉)

1.概論  先來闡述一下DLL(Dynamic Linkable Library)的概念&#xff0c;你可以簡單的把DLL看成一種倉庫&#xff0c;它提供給你一些可以直接拿來用的變量、函數或類。在倉庫的發展史上經歷了“無庫&#xff0d;靜態鏈接庫&#xff0d;動態鏈接庫”的時代。 靜態鏈接庫與動態鏈…

智能車復工日記【6】:有bug的模糊PID記錄

目錄 系列文章DYY Warning算法參考鏈接:代碼.c文件.h文件調用方法希望有大佬能幫我指正錯誤之處。以后假如有機會的話再搞這個模糊吧,頭疼!!!系列文章 【智能車Code review】—曲率計算、最小二乘法擬合 【智能車Code review】——坡道圖像與控制處理 【智能車Code review…

車刀 matlab,可轉位車刀的結構

內容介紹原文檔由會員 違規屏蔽12 發布摘 要隨著有限元技術的快速發展&#xff0c;結構優化在航空航天、建筑、汽車、工程機械等領域的結構設計方面應用越來越廣泛。在刀具行業中&#xff0c;新型刀具材料不斷涌現&#xff0c;刀具的結構也在不斷發展&#xff0c;目前針對刀具的…

DtCms.Model.Advertising.cs

using System; namespace DtCms.Model {/// <summary>/// 廣告位實體類Advertising/// </summary>[Serializable]public class Advertising{public Advertising(){ }#region Modelprivate int _id;private string _title;private int _adtype;private string _adre…