强类型和弱类型的变量都有两个属性:类型和值。
强类型的变量类型是不能改变的,弱类型的变量类型是随需改变的,这是强弱的真正含义。
我们在编写c#代码时,变量类型是明确的,不可更改的,如string就是string,int就是int,这就是强类型,好处:
1.能够享受代码提示功能
2.能够获得重构工具的支持
3.能够在编译期发现更多错误
弱类型:Object,在C#中Object是所有类型的基类,任何对象都可以使用Object来引用。可是一旦转化成Object的变量之后,代码提示便消失了;即使我们“明确”对象的确切类型,也必须通过Cast才能使用——更何况它形成了一种被“滥用”或“误用”的机会。例如一段错误代码可能会传入一个不符合约定类型的对象,那么就会造成错误。更严重的是,这样的错误可能只要在 “运行时”才能被发现,编译器对此无能为力。
[泛型的概念]
(1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大。
(2)使用泛型时不需要通过object类进行装箱拆箱,使用的时候都会是确定的类型。
(3)泛型的概念一开始是由集合引入,因为集合中的类型都是基于object类。可以在集合中使用泛型类。
(4)泛型不仅仅用于集合,还可以用于委托、接口和方法。
泛型的优点:高性能、类型安全、代码的重用与扩展