黑马程序员-C#中强类型和弱类型

来源:互联网 发布:淘宝税收问题 编辑:程序博客网 时间:2024/05/19 14:18

----------------  Windows Phone 7手机开发.Net培训、期待与您交流!--------------------      


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

 

----------------  Windows Phone 7手机开发.Net培训、期待与您交流!--------------------

  

原创粉丝点击