C 中裝箱拆箱 序列化 反序列化

2021-09-09 01:15:33 字數 1400 閱讀 9220

裝箱和拆箱是值型別和引用型別之間相互轉換是要執行的操作。

1. 裝箱在值型別向引用型別轉換時發生

2. 拆箱在引用型別向值型別轉換時發生

裝箱

//裝箱:值型別int是放在棧上的,引用型別object是放在堆上的;將棧上的東西放到堆上,就是一次裝箱操作

object obj =

10;

拆箱

//拆箱:將儲存在堆上的引用型別值轉換為值型別

object obj =10;

int number =

(int

)obj;

注:裝箱操作和拆箱操作是要額外耗費cpu和記憶體資源的,所以在c# 2.0之後引入了泛型來減少裝箱操作和拆箱操作消耗。

序列化注意事項

1、被序列化的物件的型別必須標記為[serializable](該類的物件可以被序列化)

2、當前類的所有父類也必須標記為[serializable]

3、這個類中的所有欄位的型別也必須是可序列化

序列化匯入命名空間

using system.runtime.serialization.formatters.binary;
序列化練習

class program

console.

readkey()

;}}[serializable]

//標記為可序列化

public class person

set

}char _gender;

public char gender

set

}int _age;

public int age

set

} public void

show()

}

反序列化練習

person p;

string path = @"g:\桌面\111\1.txt"

;using (filestream fs = new filestream

(path, filemode.open, fileaccess.read , fileshare.read)

)//建立流;讀取檔案

console.

writeline

("------"

,p.name,p.gender,p.age)

;console.

readkey()

;

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

C 序列化 反序列化

序列化又稱序列化,是.net執行時環境用來支援使用者定義型別的流化的機制。其目的是以某種儲存形成使自定義物件持久化,或者將這種物件從乙個地方傳輸到另乙個地方。net框架提供了兩種序列化的方式 1 是使用binaryformatter進行序列化 2 使用soapformatter進行序列化 3 使用x...

序列化反序列化

只要用到網路開發啊,就一定會用到序列化反序列化。1,自定義結構體 struct test int len int type char data 10 test data test buffer.缺點 明文,只支援基本型別,不支援變長結構 2,在1的基礎上,自定義乙個緩衝類,存放乙個訊息。把訊息寫入緩...