關於自訂事件的一點體會

來源:互聯網
上載者:User
今天在msdn上搜尋文章的時候無意中看到一個涉及 自訂事件 的部分,整天用到的基本都是windows開發環境下Ide的內建事件,比如click什麼的,一時竟沒看懂,回頭翻書查了查,才稍微理解了,並加深了印象。雖然以前在java裡也用過事件,但在c#裡事件必須先定義委託,一時比較亂,整理一下先。

首先定義一個事件的函數簽名(參數的格式)--代理
public delegate void ComputeSalaryCallback(string EmpID,double Salary);

在類型中宣告類型所包含的事件名稱,與事件觸發的邏輯
public event ComputeSalaryCallback OnComputeSalaryDone;

在一個函數中,聲明事件觸發的邏輯,換句話說,當如下函數被調用的時候,觸發OnComputeSalaryDone事件:
public virtual double computeSalary( )
{ OnComputeSalary( mstrEmpID,mdblBaseSalary);
return mdblBaseSalary;
}

定義事件處理函數,以及將事件串連到事件處理函數,串連就像是 委託 到那個函數
public static void SalaryHander(string EmpID,double Salary)
{
Console.WeiteLine(”員工:員工代號={0},工資={1}”,EmpID,Salary);
}

OnComputeSalaryDone+=new ComputeSalaryCallback(SalaryHandler);


以上就完成了一個事件的整體,一旦調用computesalary()函數,就會觸發事件OnComputeSalaryDone,並引發事件處理函數。如果串連到多個事件處理函數,則會依次執行串連的時間處理函數。

另外可以把事件定義放到組件當中,然後在其他類裡聲明事件處理函數,進行處理。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。