CLR via c 裝箱與拆箱

2021-05-28 17:29:26 字數 876 閱讀 7767

using system;

namespace 拆箱裝箱

//class是引用型別,在託管堆上分配記憶體

//int32和int是相同的,在clr中int就是32位的,不會因為32位或64位系統而改變。

struct someval

static void main(string args)

}}

using system;

namespace 裝箱與拆箱1

}}//clr via c# p117

using system;

using system.diagnostics;

namespace 裝箱與拆箱2

,,", a, b, c);//三次裝箱

st.stop();

console.writeline(st.elapsedmilliseconds);//消耗的時間為500ms

*/st.start();

string s1 = a.tostring();

string s2 = b.tostring();

string s3 = c.tostring();

for (int i = 0; i < 10000; i++)

console.writeline(s1+s2+s3);

st.stop();

console.writeline(st.elapsedmilliseconds);//消耗的時間為450ms

console.readline();

/*理論上說第一次消耗的資源時間比第二次多,測試中也可以大致看出時間確實減少了*/}}

}

裝箱與拆箱

總結來說 裝箱就是將值型別轉化成引用型別,拆箱就是就是將引用型別轉化成值型別 裝箱 int n 10 string s n.tostring 這個不是裝箱。string與int是完全不同的兩種型別,沒有父子類關係,所以不可能發生裝箱和拆箱,因為本身就不具備型別直接轉換的功能。console.writ...

裝箱與拆箱

public class integertest 執行結果 false true 解釋 integer.class 建立快取陣列 private static class integercache static final integer cache new integer 128 127 1 st...

拆箱與裝箱

裝箱 把基本型別的資料,包裝到包裝類中 基本資料型別資料 包裝類 構造方法 integer int value 構造乙個新分配的integer物件,他表示指定的int值。integer string s 構造乙個新分配的integer物件,他表示string引數所指示的int值。傳遞的字串必須是基本...