欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 序列化与反序列化操作

程序员文章站 2022-03-07 21:42:56
序列化和反序列化导入命名空间:快捷键:导入命名空间首先光标放在报错的代码。1 、alt+shift+F102 、Ctrl + 点Ctrl + .序列化:将对象转化为二进制。好处:读取后保存更方便。反序列化:将二进制转化为对象。作用:传递数据。序列化:序列化只序列化数据(比如字段的值,属性的值,其实也是字段的值。)序列化后只是把对象存储的格式改变了,对于对象的实际存储内容并没有改变。二进制序列化就是把对象变成流的过程,就是把对象编程byte[]见对象序列化后保存到磁盘上,要操...

序列化和反序列化
导入命名空间:快捷键:导入命名空间
首先
光标放在报错的代码。
1 、
alt+shift+F10
2 、
Ctrl + 点
Ctrl + .
序列化:将对象转化为二进制。
好处:读取后保存更方便。
反序列化:将二进制转化为对象。
作用:传递数据。
序列化:
序列化只序列化数据(比如字段的值,属性的值,其实也是字段的值。)
序列化后只是把对象存储的格式改变了,对于对象的实际存储内容并没有改变。
二进制序列化就是把对象变成流的过程,就是把对象编程byte[]
见对象序列化后保存到磁盘上,要操作磁盘文件所以要使用文件流(FileStream)
二进制序列化步骤(被序列化的对象的类型必须标记为“可序列化”:在要序列化的类前面加上[Serializeable],被序列化的父类也要标记为可序列化)
1、创建序列化器
BinaryFormatter bfm=new BinaryFormatter();
2、开始执行序列化
3、创建一个文件流
Using (FileStream fs=new FileStream(“文件路径”,FileMode.Open,FileStream.Write))
{
bfm.Serialize(fs,要序列化的对象);
}
不想让一个属性序列化就在前面加上[NonSerialized]
反序列化
1、创建序列化器
BinaryFormatter bfm=new BinaryFormatter();
Using (FileStream fs=new FileStream(“文件路径”,FileMode.Open,FileStream.Read))
{2、执行反序列化(序列化文件中只包含了对象的数据,不包含方法之类的,所以必须为原来序列化的类型)
}
乱码问题
GB2312:英文字符用1个字节表示,中文字符用两个字节表示。兼容Ascll
GBk:兼容GB2312和Ascll,增加了一些生僻字等。
GB 18030:支持少数民族汉字简繁体·等·与上面两者兼容。
表达式
表达式是任何一门编程语言的基本组件之一。(最重要的一个)
一种专门用来求值的语法实体。(语法实体:类似于方法)
表达式是算法逻辑中最基本也是最小的单元,通过求值表达一定的算法意图(程序目的)。
异常处理
1、什么是异常?程序在运行过程中可能会遇到很多意外的情况,比如对象为空,文件打开失败和数据格式不符合等等,这些情况我们可以是因为不正确的代码逻辑,环境配置和用户输入等因素触发。如何能处理好这些情况,并减少它们带来的影响,是软件开发人员必须考虑的问题。处理意外的情况的话,传统的做法是使用函数的返回值来报告处理过程中是否产生了错误,并且他会通过线程的本地变量()存储最后一次发生错误的原因,这样做的好处是:实现起来很简单,并且开销很小,但是会增加开发者的代码的负担,而且容易因为我们开发者的疏忽而导致错误被忽略。因此,很多编程语言就提供了另外的做法,也就是使用异常(Exception)来报告错误。使用异常来报告错误支持统一捕捉并处理指定代码区域内发生所有错误,可以减少代码量,并标准化错误处理流程。
2、如何处理异常?
try-catch-finally
try{
可能出现异常的代码
}catch(IndexofoutofrangeExcception)
{
处理它//通知用户、打印错误的信息。
}
finally:不管异常是否出现都会执行。
throw:可以在catch语句中使用throw来抛出一个异常。

本文地址:https://blog.csdn.net/qq_51978873/article/details/111069347

相关标签: 笔记 c#