摘要: 为了便于文章的开展,首先介绍装箱(Boxing)和拆箱(Unboxing)这两个名词。.Net的类型分为两种,一种是值类型,另一种是引用类型。这两个类型的本质区别,值类型数据是分配在栈中,而引用类型数据分配在堆上。那么如果要把一个值类型数据放到堆上,就需要装箱操作;反之,把一个放在堆上的值类型数据取出来,则需要进行拆箱操作。例如,对于如下简单的装箱和拆箱操作语句。inti = 123;objectobj = i;//Boxingif( objisint)intj = (int) obj;//Unboxing为了,更好的诠释装箱和拆箱操作,我借用MSDN关于“Boxing”的解释图,具体如下。明 阅读全文
posted @ 2010-12-30 17:02 Do.else 阅读(245) 评论(0) 推荐(0) 编辑
摘要: .Net提供了接口,这个不同于Class或者Struct的类型定义。接口有些情况,看似和抽象类一样,因此有些人认为在.Net可以完全用接口来替换抽象类。其实不然,接口和抽象类各有长处和缺陷,因此往往在应用当中,两者要结合来使用,从而互补长短。接下来先说说抽象类和接口的区别。区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。这些听起来有些虚,举个例子。例如,狗是对于所有狗类动物的统称,京哈是狗,牧羊犬是狗,那么狗的一般特性,都会在 阅读全文
posted @ 2010-12-30 16:00 Do.else 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 索引器概述索引器使得对象可按照与数组相似的方法进行索引。get 访问器返回值。set 访问器分配值。this 关键字用于定义索引器。value 关键字用于定义由 set 索引器分配的值。索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。索引器可被重载。索引器可以有多个形参,例如当访问二维数组时。C#语言一个最令人感兴趣的地方就是类的索引器(indexer)。简单说来,所谓索引器就是一类特殊的属性,通过它们你就可以像引用数组一样引用自己的类。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的 阅读全文
posted @ 2010-12-30 15:58 Do.else 阅读(196) 评论(0) 推荐(0) 编辑