一、装箱和拆箱 装箱就是 将值类型转换为引用类型。拆箱就是 将引用类型转换为值类型。比如我们非常常用的 .ToString() 方法,就是典型的一个装箱的过程。再如下面的例子: int i=10; object y=(object) i ; //这就是装箱 int x=(int)y; //这是拆箱。 二、对象的相等比较 在C#中,有四种比较相等的方法。 1、ReferenceEquals() 该方法是一个静态方法,用来判断两个引用是否指向同一个实例。也就是是否 指向同一个内存地址,如果是,则返回true ,否则返回 false。 2、虚拟的 Equals() 方法。因为是虚拟的方法,所以可以重写。这样它既可以用来比较对象,也可以 比较值。 3、静态的 Equals() 方法,这与虚拟的Equals()方法作用相同,只是带有两个参数,并对其进行比较 。这个方法可以处理两个对象中有一个是null 的情况,当有一个是null 的时候,就会抛出异常。 4、比较运算符 == 我们最好把这种比较看做是严格值比较和严格引用比较之间的中间选项。但注意 ,通过这样的方式比较字符串的时候,而不是引用。 |