2012年1月11日
摘要: C#中的String是引用类型和值类型的综合体,兼有二者的特点。1、String 是类,是引用类型,在堆上分配内存。为什么要把String设计为class ,因为String要处理比较多的业务逻辑,比如大小写转换,拆分字符串等。2、String 是不可变字符串。按理说,string是引用类型,在赋值或者调用方法传递参数的时候,是“复制引用”,对引用的值进行修改,应该产生副作用。但实际情况并非如此。请看下面的代码。View Code 1 class Program2 {3 static void Main()4 {5 string... 阅读全文
posted @ 2012-01-11 13:32 Andy Niu 阅读(727) 评论(0) 推荐(0)
摘要: 1、使用场景装箱的使用场景:想把值类型当做引用类型来使用,于是把值类型转换为引用类型。拆箱的使用场景:想把引用类型当做值类型来使用,于是把引用类型转化为值类型。再进一步,为什么想把值类型当做引用类型来使用? 比如:方法定义时接受Object 类型的参数,而你想传递int 类型,此时需要把int装箱为Object;对于一些非泛型的容器,为了保证通用,元素类型定义为Object,此时向容器内添加int,double的时候,需要装箱。为什么想把引用类型当做值类型来使用呢?对于值类型装箱后的引用类型,你想直接使用值类型的数据。2、实现原理装箱:(1)在堆上分配一块内存,该内存就是一个实例(2)将值类型 阅读全文
posted @ 2012-01-11 13:06 Andy Niu 阅读(438) 评论(0) 推荐(0)