C 基礎 型別強制轉換,拆箱,裝箱

2021-06-19 12:06:35 字數 615 閱讀 8221

一、裝箱和拆箱

裝箱就是 將值型別轉換為引用型別。拆箱就是 將引用型別轉換為值型別。

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

C 裝箱,拆箱和強制轉換

關係 強制轉換就包含有裝箱拆箱操作,裝箱就是把值型別轉換成引用型別,反之就是拆箱.一 裝箱和拆箱 裝箱是把值型別轉換成引用型別,而拆箱是把引用型別轉換成值型別 利用裝箱和拆箱功能,可通過允許值型別的任何值與object 型別的值相互轉換,將值型別與引用型別鏈結起來.例如 int val 100 ob...

c 基礎 裝箱與拆箱

1.定義 裝箱 值型別轉換為引用型別。拆箱 引用型別轉換為值型別。關於值型別和引用型別,之前用了一篇文章來做了淺顯的討論 傻傻分不清楚 c 值型別 引用型別 2.細節討論 2.1裝箱 例子 object ojb 1 上面一行 是很簡單的裝箱,1是int型別,是值型別,隱式轉換為object引用型別。...

C 基礎 裝箱與拆箱

出處 裝箱是將值型別轉換為object型別或由此值型別實現的任何介面型別的過程。當 clr 對值型別進行裝箱時,會將該值包裝到 system.object 內部,再將後者儲存在託管堆上。取消裝箱將從物件中提取值型別。裝箱是隱式的 取消裝箱是顯式的。裝箱和取消裝箱的概念是型別系統 c 統一檢視的基礎,...