日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#中的序列化和反序列化案例

發(fā)布時(shí)間:2023/12/3 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中的序列化和反序列化案例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

序列化:是將對(duì)象的狀態(tài)存儲(chǔ)到特定存儲(chǔ)介質(zhì)的過(guò)程,也可以說(shuō)是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。

上面的解釋是官方定義,大白話解釋就是,將對(duì)象以二進(jìn)制的方式存儲(chǔ)在文件中,如果簡(jiǎn)簡(jiǎn)單單的將一些數(shù)據(jù)或者內(nèi)容存儲(chǔ)到文件中的話,很好實(shí)現(xiàn),直接使用IO就可以,但是對(duì)象可就不一樣了,我們可以通過(guò)序列化來(lái)實(shí)現(xiàn),下面就展示一個(gè)序列化的案例:

首先新建一個(gè)Student類(lèi),需要注意的是,在類(lèi)的上方要標(biāo)識(shí)[Serializable],以表示該類(lèi)可支持序列化操作。

[Serializable] public?class?Student {public?int?Id?{?get;?set;?}public?string?Name?{?get;?set;?}public?string?Sex?{?get;?set;?}public?int?Age?{?get;?set;?}public?Student()?{?}public?Student(string?name,int?age,string?sex)?{this.Name?=?name;this.Age?=?age;this.Sex?=?sex;}public?void?Say()?{Console.WriteLine("姓名是:{0},年齡是:{1},性別是{2}",Name,Age,Sex);}}

接下來(lái)寫(xiě)一個(gè)測(cè)試類(lèi)實(shí)現(xiàn)一下序列化:

????????//序列化操作????????static void TestXu(){????? ???List<Student>?slist?=?new?List<Student>();Student?stu1?=?new?Student("劉世豪",12,"男");Student?stu2?=?new?Student("李宏洋",?18,?"男");Student?stu3?=?new?Student("鐘立琦",19,"男");slist.Add(stu1);slist.Add(stu2);slist.Add(stu3); using(FileStream?fs?=?new?FileStream(@"d:/test/test.btn",FileMode.Create)){????????????BinaryFormatter?bf?=?new?BinaryFormatter();bf.Serialize(fs,slist);Console.WriteLine("序列化成功");}}

執(zhí)行一下,運(yùn)行結(jié)果不出意外的話是:序列化成功,但是提醒你不要去看生成的那個(gè)文件,不信的話你就去看看。


反序列化:顧名思義就是與序列化相反,也就是從文件中將對(duì)象在還原回來(lái)。下面是代碼案例:

//反序列化操作static void TestFanXu(){????????????using(FileStream?fs?=?new?FileStream(@"d:/test/test.txt",FileMode.Open)){BinaryFormatter?bf?=?new?BinaryFormatter();List<Student>?slist?=?(List<Student>)bf.Deserialize(fs);foreach?(Student?stu?in?slist)?{Console.WriteLine(stu.Name);}}}

輸出的運(yùn)行結(jié)果:
劉世豪
李宏洋
鐘立琦

這就是序列化和反序列化操作的案例。

溫馨提示

如果你喜歡本文,請(qǐng)分享到朋友圈,想要獲得更多信息,請(qǐng)關(guān)注我。

往期內(nèi)容更精彩哦~

總結(jié)

以上是生活随笔為你收集整理的C#中的序列化和反序列化案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。