Head First C# 中文版 第九章 读写文件 page435

 

修改Brian 的借口生成器为使用序列化的 Excuse 对象的二进制文件而不是使用文本文件。


①让Excuse 类可以被序列化


Excuse 类添加 [Serializable] 特性来使得它可以被序列化。还有,你需要添加下面这一行:

using System.Runtime.Serialization.Formatters.Binary;


②修改Excuse.Save ()方法来序列化借口


Save ()方法打开文件并把自己序列化,而不要再让它用 StreamWriter 来写出文本了。你需要搞明白当前类如何序列号自身。


③修改Excuse.OpenFile ()方法来反序列化一个借口


你需要创建一个临时Excuse 对象来从文件读取反序列化的对象,然后把其字段复制进当前类实例中去。


④现在修改窗体让它使用新的文件后缀名


需要对窗体做的修改很少。由于我们不再用文本文件了,就不应该再用.txt 文件名后缀了。修改对话框,修改默认文件名和搜索文件夹的代码这样就可以操作 *.excuse 文件了。


 

对了!你的代码很容易修改,因为它封装良好。


一个类对外隐藏内部的操作并且只暴露需要暴露的行为,这样的类就叫做封装良好的类。窗体毫不知道借口是如何存储进文件中去的。窗体只需要传递一个文件名进去,然后Excuse 类将会处理余下的一切。这样,如果你要修改 Excuse 类处理文件的方式的话就很简单了。类封装的越好,后续工作中就越容易修改。还记得封装是四个面向对象核心原则之一吗?这里的例子就说明了运用那些原则会如何的使得你的编程便容易。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值