我學這些東西的時候在網絡上查了很久,感覺都很專業,初學者難以理解什麼時候用,也很難找到簡單的介紹,稍微整理一下下:
------------------------------------------------------------------------------------------------------------------------------------------------------------
反射 : Reflection
1. 基類調用派生類時候用
2. 在運行時才確定要調用哪個類的時候用
3. 在運行期 獲取 模塊 程序集 類 構造函數 屬性方法的信息 以及實例化類,
調用構造函數,屬性,方法,事件,委托等……通過對類型動態實例化後,還可以用反射對其執行操作
4. 如果在寫代碼的時候就能確定要調用的是哪個類,那直接調用當然好了。
但很多場合(也許是為了通用性),要在運行期才能夠決定需要調用的類型,那樣就有必要用反射來取得類型的相關信息了
簡單來說就是用string可以在runtime為所欲為的東西,實際上就是一個.net framework內建的萬能工廠
------------------------------------------------------------------------------------------------------------------------------------------------------------
泛型 :
1. 減少裝箱拆箱,性能高 2. 類型安全 3. 工作效率提高
可是誰知道怎麼簡單的描述他?
------------------------------------------------------------------------------------------------------------------------------------------------------------
緩存 - 緩存依賴 :
1. 當用戶再次訪問這個網頁的時候,被格式化好的HTML會被直接送顯。 速度快
2. 依賴於數據源,數據源發生更改時重新生成緩存,數據源可以是文件,數據庫等
一般來說優化網站時候用
--------------------------------------------------------------------------------------------------------------------------------------------------------------
委托 :
1. 委托是可以申明的類型,方法看做委托的實例 ,所以說方法可以傳遞滴!
(將方法作為參數傳遞),可以避免在程序中大量使用If-Else(Switch)等語句,同時使得程序具有更好的可擴展性。
2. 使用委托可以將多個方法綁定到同一個委托的變量上( += 或 -=)
3. 一個事件不管是不是聲明為public,但是它實際上都是private,私有變量是不可以直接用等號(=)的,也就是說事件用=號來綁定一個函數是不好滴
所有一般用封裝了的 += , -= 實際上 += ”對應 add_XXX()方法, “-=”對應 remove_XXX()方法。
4. 返回值都為void
如果定義了返回值,那麼多個訂閱 者的方法都會向發布者返回數值,結果就是後面一個返回的方法值將前面的返回值覆蓋掉了,
因此,實際上只能獲得最後一個方法調用的返回值。
5.委托相當於C中的指針,它是類型安全的
委托相當於老板,老板可以隨意支配許多員工做事,一個委托也可以綁定N多函數。