成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

有關事件與委托關系的思考

開發 后端
本文對事件與委托的關系進行了深一層的剖析。很多人認為事件就是一種受限的委托,但其實,事件與委托的關系好比字段與屬性的關系。

事件與委托究竟是什么關系,你了解么?你了解的正確么?這樣的基礎概念,其實往往是容易造成混淆的地方。下面介紹Ivony對事件與委托關系的思考總結,總結的還是挺不錯的。

由于MSDN含混不清的誤導,很多人(包括我以前)認為,其實事件就是一種受限的委托。但實際上不是,事件與委托的關系好比字段與屬性的關系。事件實際上是一種委托屬性,只不過這個屬性重載的不是賦值運算符,而是+=和-=運算符。

我們知道,對于一個屬性而言,對他的賦值和取值運算會被轉換為兩個方法的調用。

例如obj.A這個屬性,則下面的表達式等同于后面的形式:

  1. obj.A = “aaa”;           obj.set_A( “aaa” );  
  2.  
  3. string a = obj.A;        string a = obj.get_A();  

而事件也是一樣,假設有一個事件obj.E,則下面的表達式也等同于后面的形式:

  1. obj.E += d;              obj.add_E( d )  
  2.  
  3. obj.E -= d;              obj.remove_E( d )  

與屬性一樣,事件也可以被繼承甚至重寫。事件也可以是虛的和抽象的,理論上事件的add和remove也可以是有不同的可見性的。

與屬性一樣,抽象和虛的事件,其實就是表現為事件的兩個方法add和remove是抽象的和虛的。

但是!事件與屬性有一個最明顯的不同,也就是屬性是必須實現的,事件則是不必的。或者說,事件是最早出現的自動屬性。

與自動屬性一樣,事件也會創建一個字段來保存對應的委托實例,而這個字段與事件同名且是私有。在C#中,你可以訪問到這個字段,因為它真的就是一個字段。

換言之,當你在C#中寫代碼時,如果是在類型內部使用類型的事件,其實就是引用到那個自動生成的私有字段。換言之,在類的內部使用事件的時候,你使用的是一個委托字段而不是事件。對這個字段的操作是完全不同于在類的外部使用事件的。

當然,一旦事件寫了add和remove訪問器,也就不會被自動實現,也就沒有這個私有字段了。同樣的,因為這個字段是私有的,所以,在類的外部也是訪問不到的。

【編輯推薦】

  1. 另類的思維 將事件視為對象
  2. C# TextBox事件實現實例詳解
  3. 深入理解C#委托的實質
  4. C#委托基礎:談委托和接口
  5. C#委托實例簡單分析
責任編輯:yangsai 來源: 博客園
相關推薦

2009-08-18 11:08:24

.Net Framew

2024-05-16 13:36:04

C#委托事件

2009-08-27 11:02:22

JavaScript事

2024-05-15 09:11:51

委托事件C#

2024-02-04 17:16:22

ReactVue前端

2011-06-30 10:28:50

C#開發

2011-06-16 14:38:18

JavaScript事件委托

2016-09-14 21:28:25

JavaScript事件代理委托

2024-06-25 08:43:25

C#編程模型

2022-07-28 08:34:59

事件委托JS

2009-08-03 13:23:04

C#編程組件-事件-委托

2011-06-16 15:14:17

VB.NET事件委托

2024-06-28 10:19:02

委托事件C#

2009-08-18 10:54:17

C#事件和委托

2009-08-26 14:48:05

C#委托與事件

2010-04-20 21:12:34

負載均衡解決方案

2010-01-08 09:30:03

Java數組JVM

2009-08-04 13:53:58

C#委托類C#事件

2016-01-08 16:11:47

2009-08-27 16:53:01

C#委托C#事件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜影院在线观看免费 | 亚洲成人午夜电影 | 久久综合国产 | 日韩性生活网 | 免费观看一级毛片 | 亚洲免费在线观看 | 国产激情在线播放 | 久久夜色精品国产 | 欧美日韩一二三区 | 亚洲综合在线网 | 亚洲视屏| 国产精品久久久久久久久污网站 | 国产在线不卡视频 | 香蕉二区 | 日韩精品一区二区三区免费观看 | av一级久久 | 精品视频久久久久久 | 欧洲一区二区三区 | 在线观看日韩av | 久久久91| 一级h片| 毛片一级片 | 欧美日韩成人在线观看 | 国产精品美女久久久久久免费 | 在线日韩不卡 | 亚州精品天堂中文字幕 | 日韩高清一区 | 国产精品久久久久久久三级 | 国产精品久久久久久吹潮 | 久久精品亚洲精品国产欧美 | 精品免费视频一区二区 | 国产一区二区不卡 | 国产精品片aa在线观看 | 午夜播放器在线观看 | 久久久久久看片 | 欧美性生活一区二区三区 | 另类专区亚洲 | 日韩在线视频一区 | 久久久久久久亚洲精品 | 国产二区三区 | 亚洲乱码一区二区三区在线观看 |