一、裝箱和拆箱
裝箱就是 將值類型轉換為引用類型。拆箱就是 將引用類型轉換為值類型。
比如我們非常常用的 .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、比較運算符 == 我們最好把這種比較看做是嚴格值比較和嚴格引用比較之間的中間選項。但注意 ,通過這樣的方式比較字符串的時候,而不是引用。