委托 匿名类 var隐式类型 匿名方法
委托
委托是一個類 ?它定義了方法的類型 ?實現了講一個方法當做另一個方法的參數來傳遞
? (委托的一個有趣且有用的屬性是,他不知道也不關心所引用的方法的類 只關心引用的方法是否具有與委托相同的參數和返回類型)
多播委托
每個委托都只包含一個方法調用 ?調用委托的次數和調用方法的次數相同。如果需要調用委托的一次可以執行多個方法 ?這時我們就需要多播委托
通俗來講 ?多播委托就是一個包含多個方法的委托稱為多播委托
事件
基本上說是一個用戶操作 ?如按鍵 點擊 鼠標移動等等 ?或者是一些出現 如系統生成的通知 ?應用程序需要在事件發生時響應事件
事件在類中聲明且生成 ?且通過使用同一個類或者其他類中的委托與事件處理程序聯 ?包含的事件的類用于發布事件 ?這被稱為發布器類 ?其他接受該事件的類被稱為訂閱器類
發布器是一個包含事件和委托定義的對象。事件和委托之間的聯系也定義在這個對象中。發布器類的對象調用這個事件,并且通知其他對象
訂閱器是一個接受事件并且提供事件處理程序的對象 ?在發布器類中的委托調用訂閱器類中的方法(事件處理程序)
?
匿名類
定義:沒有名字的類
特點:匿名類不能被引用 ?只能在創建時用new語句來聲明
優勢
匿名類提供了一種方便的方法 ?可用來將一組只讀屬性封裝到單個對象中 ?而無需首先顯示定義一個類型
類型名由編譯器生成 ?并且不能再源代碼級使用 每個屬性的類型由編譯器判斷
可通過使用new運算符和對象初始值創建匿名類型
匿名類型通常用在查詢表達式的select子句中 ?一遍返回原序列中的每個對象的屬性子集
?
var隱式類型
隱式類型var ?聲明變量 ?是無須指定數據類型 編譯器會根據賦值判斷其數據類型的一種機制
優勢:
通過var這個隱式類型 ?可以提高開發人員的開發效率 ?很多時候可以不考慮對象的類型 ?編譯器會自動幫助我們判斷
使用規則:
1.var類型會被編譯器根據初始值的類型推斷出具體的類型
2.var類型的局部變量必須賦予初始值
3.無法將null賦值給隱式類型的額局部變量
4.var類型變量的定義必須是在方法中或者在屬性get set訪問器中
5.var不能用作方法的參數
6.不能當做返回值類型
7.語句中值聲明一次變量 ?聲明后不能改變類型
?
匿名方法
C#2.0引入的一個新特性 ?它允許開發者內聯inline聲明自己的函數代碼而無須使用委托函數
應用場景
1.需要一個臨時方法, 該方法使用次數極少
2.這個方法的代碼很短, 甚至可能比方法聲明都短的情況下使用
?
轉載于:https://www.cnblogs.com/-zillb/p/11172661.html
總結
以上是生活随笔為你收集整理的委托 匿名类 var隐式类型 匿名方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019.07.11
- 下一篇: 在阿里工作5年了,斗胆谈谈我认为的高级开