摘要: EqualsEquals的作用是比较对象实例是否相等。MSDN中提到,Object默认支持引用相等,如果想要判断值相等,就要重写Equals。判断两个实例是否是一个引用时,通常是通过object.ReferenceEquals(obj1, obj2);来进行。代码示例如下:public class User{ private string userName; private int userAge; public string UserName { get { return userName; } set { userName = value; } } public int UserAge { 阅读全文
posted @ 2011-06-03 11:34 庖丁解.NET 阅读(433) 评论(0) 推荐(0)
摘要: 装箱:为了将一个值类型转换为一个引用类型,就要使用一种叫装箱的机制。Int32 a=5;Object o=a; 对值类型的装箱时内部发生的事情如下:1,首先在托管堆中分配内存,大小为值类型字段所需内存量加上额外成员(类型对象指针和同步索引块)大小。2,值类型字段复制到新分配的堆内存。3,返回对象的引用。 拆箱:首先,拆箱不是装箱的逆过程,它其实是获取一个指针的过程,指针指向一个对象中的原始值类型。 拆箱之后,紧接着是字段的复制过程。在对一个对象拆箱的时候,只能将其转化为原来未装箱的值类型。例如:Int32 x=5; Object o=x; Int16 y=(Int16)o;这时候就会发生异常. 阅读全文
posted @ 2011-06-03 10:14 庖丁解.NET 阅读(244) 评论(0) 推荐(0)