zoukankan      html  css  js  c++  java
  • 【基础知识】.Net基础加强08天

    一、 文件的读取

    1. 有FileStrem,为什么还要StreamWriter和StreamRead

    StreamWriter和StreamRead是用来读取文本文件的,每次只读取一行文本文件

    二、 对象的序列化(二进制序列化)

    1. 对象序列化是什么呢?

    对象序列化是将对象(比如Person对象)。对象是稍纵即逝的,不仅程序重启、操作系统重启会造成对象的消失,就是退出函数范围等都可能造成对象的消失,序列化/反序列化就是为了保持对象的持久化。就像用DV录像(序列化)和播放器播放(反序列化)一样。

    2. 反序列化步骤:

    a) 创建二进制序列化器(或者叫做格式化器)

    BinaryFormatter bf = new BinaryFormatter();

    b) 开始执行反序列化

    3. 为什么反序列化的时候需要原来定义Person类的那个程序集?

    反序列化的时候,要返回一个对象,这个对象必须根据原来Person所在的程序集才能创建,也就是说Person.bin中包含的仅仅是一些数据,根据这些数据是无法在内存中创建对象的。只能是根据原来Person类型的程序集来创建对象,然后把person.bin中的数据一一对应进行赋值。

    4. 总结:

    对象序列化,只是对象的一些状态信息进行序列化(比如字段)。

    对于方法之类的根本不进行序列化,也就是说person.bin中只包含字段名和字段值,根本没有方法信息。

    但是反序列化的时候,,返回的是一个对象,那么只根据这些字段信息是无法创建对象的,所以这个时侯需要先根据原来的程序集,获取Person类型,然后在内存中创建一个Person对象然后在把反序列化得到的字段信息赋值给这个Person对象。

    三、 正则表达式

  • 相关阅读:
    谈To B产品路径逻辑:To B产品的核心本质到底是什么?
    做产品应该遵循哪些宏观产品原则?
    做产品应该遵循哪些微观产品原则?
    B端产品的第一性原理思考
    美团点评王慧文:互联网有AB面,最惨烈战争发生在B2
    《罗振宇 知识就是力量》
    生活是一只龙虾
    CAD-美的热水器F50-32DQ
    CAD-椭圆和圆弧命令
    CAD-圆命令
  • 原文地址:https://www.cnblogs.com/haoxilu/p/3570779.html
Copyright © 2011-2022 走看看