自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#事件處理簡(jiǎn)單分析

開(kāi)發(fā) 后端
這里介紹C#事件處理,事件既可以被聲明為類域成員(成員變量),也可以被聲明為屬性。兩者的共性為,事件的類型必定是代表元,而函數(shù)指針原形和C#的代表元具有相同的含義。

C#語(yǔ)言還是比較常見(jiàn)的東西,這里我們主要介紹C#事件處理,包括介紹ActiveX控件的事件接收等方面。

C#事件處理

當(dāng)你寫(xiě)一個(gè)類時(shí),有時(shí)有必要讓類的客戶知道一些已經(jīng)發(fā)生的事件。如果你是一個(gè)具有多年編程經(jīng)驗(yàn)的程序員,似乎有很多的解決辦法,包括用于回調(diào)的函數(shù)指針和用于ActiveX控件的事件接收(event sinks)?,F(xiàn)在你將要學(xué)到另外一種把客戶代碼關(guān)聯(lián)到類通知的辦法——使用事件。

事件既可以被聲明為類域成員(成員變量),也可以被聲明為屬性。兩者的共性為,事件的類型必定是代表元,而函數(shù)指針原形和C#的代表元具有相同的含義。

每一個(gè)事件都可以被0或更多的客戶占用,且客戶可以隨時(shí)關(guān)聯(lián)或取消事件。你可以以靜態(tài)或者以實(shí)例方法定義代表元,而后者很受C++程序員的歡迎。

既然我已經(jīng)提到了事件的所有功能及相應(yīng)的代表元,請(qǐng)看清單5.11中的例子。它生動(dòng)地體現(xiàn)了該理論。

下列代碼在類中實(shí)現(xiàn)C#事件處理:

  1. using System;  
  2. // 向前聲明  
  3. public delegate void EventHandler(string strText);  
  4. class EventSource  
  5. {  
  6. public event EventHandler TextOut;  
  7. public void TriggerEvent()  
  8. {  
  9. if (null != TextOut) TextOut("Event triggered");  
  10. }  
  11. }  
  12. class TestApp  
  13. {  
  14. public static void Main()  
  15. {  
  16. EventSource evsrc = new EventSource();  
  17. evsrc.TextOut += new EventHandler(CatchEvent);  
  18. evsrc.TriggerEvent();  
  19. evsrc.TextOut -new EventHandler(CatchEvent);  
  20. evsrc.TriggerEvent();  
  21. TestApp theApp = new TestApp();  
  22. evsrc.TextOut += new EventHandler(theApp.InstanceCatch);  
  23. evsrc.TriggerEvent();  
  24. }  
  25. public static void CatchEvent(string strText)  
  26. {  
  27. Console.WriteLine(strText);  
  28. }  
  29. public void InstanceCatch(string strText)  
  30. {  
  31. Console.WriteLine("Instance " + strText);  
  32. }  

【編輯推薦】

  1. C#類和結(jié)構(gòu)簡(jiǎn)單介紹
  2. C# explicti和implicit詳解
  3. C#編寫(xiě)ActiveX控件詳細(xì)介紹
  4. C# StringBuilder和String淺析
  5. C#別名指示符學(xué)習(xí)經(jīng)驗(yàn)
責(zé)任編輯:佚名 來(lái)源: cnbeta
相關(guān)推薦

2009-08-12 15:20:21

C#事件處理

2009-09-07 15:31:49

C#支持事件

2009-08-12 18:28:09

C#事件處理程序

2009-08-07 17:41:40

C#預(yù)處理

2009-08-04 09:56:46

C#事件處理自定義事件

2009-08-26 18:00:07

C#內(nèi)部類

2009-08-27 15:34:38

C#命名空間

2009-08-27 18:05:54

C#索引功能

2009-08-31 18:24:26

編譯C#文件

2009-09-01 17:32:04

C#版本控制

2009-09-01 18:05:17

C#類型聲明

2009-09-01 18:36:35

C#委托實(shí)例

2009-09-03 15:46:57

C#自定義事件

2009-09-02 10:59:02

C#單路代理

2009-09-03 17:13:19

C#建立項(xiàng)目

2009-08-26 14:01:18

C#標(biāo)識(shí)符

2009-08-27 10:44:21

C#靜態(tài)變量

2009-09-01 10:08:57

C#運(yùn)算符

2009-09-04 10:07:42

C#完全限定名

2009-08-31 16:01:31

C#和設(shè)計(jì)模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)