強類型和弱類型的變量都有兩個屬性:類型和值。
強類型的變量類型是不能改變的,弱類型的變量類型是隨需改變的,這是強弱的真正含義。
我們在編寫c#代碼時,變量類型是明確的,不可更改的,如string就是string,int就是int,這就是強類型,好處:
1.能夠享受代碼提示功能
2.能夠獲得重構工具的支持
3.能夠在編譯期發現更多錯誤
弱類型:Object,在C#中Object是所有類型的基類,任何對象都可以使用Object來引用。可是一旦轉化成Object的變量之后,代碼提示便消失了;即使我們“明確”對象的確切類型,也必須通過Cast才能使用——更何況它形成了一種被“濫用”或“誤用”的機會。例如一段錯誤代碼可能會傳入一個不符合約定類型的對象,那么就會造成錯誤。更嚴重的是,這樣的錯誤可能只要在 “運行時”才能被發現,編譯器對此無能為力。
[泛型的概念]
(1)沒有泛型的時候,所有的對象都是以object為基礎,如果要使用時必須進行強制類型轉換,如果對於值類型,則會導致不斷拆箱裝箱的過程,對系統消耗很大。
(2)使用泛型時不需要通過object類進行裝箱拆箱,使用的時候都會是確定的類型。
(3)泛型的概念一開始是由集合引入,因為集合中的類型都是基於object類。可以在集合中使用泛型類。
(4)泛型不僅僅用於集合,還可以用於委托、接口和方法。
泛型的優點:高性能、類型安全、代碼的重用與擴展