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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

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

序列化:是將對象的狀態(tài)存儲到特定存儲介質(zhì)的過程,也可以說是將對象狀態(tài)轉換為可保持或傳輸?shù)母袷降倪^程。
上面的解釋是官方定義,大白話解釋就是,將對象以二進制的方式存儲在文件中,如果簡簡單單的將一些數(shù)據(jù)或者內(nèi)容存儲到文件中的話,很好實現(xiàn),直接使用IO就可以,但是對象可就不一樣了,我們可以通過序列化來實現(xiàn),下面就展示一個序列化的案例:
首先新建一個Student類,需要注意的是,在類的上方要標識[Serializable],以表示該類可支持序列化操作。

[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);}}

接下來寫一個測試類實現(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.txt",FileMode.Create)){BinaryFormatter bf = new BinaryFormatter();bf.Serialize(fs,slist);Console.WriteLine("序列化成功");}}

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


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

static void FanXulie() { 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);}}}

輸出的運行結果:
劉世豪
李宏洋
鐘立琦

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

歡迎關注微信公眾號:《雄雄的小課堂》呦。

**

總結

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

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