Pha*_*rap 7 .net c# vb.net com visual-c++
当你调用Close一个活动StreamWriter时,它就不可能再向流写入代码了(因为它已被关闭).要打开另一个流,您必须创建一个新的实例,StreamWriter因为没有'Open'方法.
我的问题是,什么是在具有点Close和Dispose当你真的不能使用任何东西,除了Dispose关闭流后?
我能理解是否有一个Open函数,即你可以关闭一个文件然后使用相同的文件打开另一个文件StreamWriter.但是因为Close除了Dispose之后你还不能真正使用任何东西,为什么不放弃Close并Dispose关闭底层流作为它的第一个动作呢?
我收到Dispose来自IDisposeable和所有.我想知道的是,为什么Close在Dispose看起来Close无论如何都要特别需要.
据我所知,如果没有打开另一个流的能力StreamWriter,没有任何意义,因为所有其他方法都变得无用Close,Dispose之后你别无选择.
为什么是,StreamWriter有什么麻烦事Close时,他们可以合并Close和Dispose成一个单一的方法?
在处理流时,有一个长期存在的约定,那Close就是必须关闭流的方法。这是许多程序员在处理流时习惯并期望看到的术语。拥有一个没有方法的流可能会造成混乱Close,并且人们可能需要一些时间才能意识到他们应该使用它Dispose来关闭流。
该类当然有可能显式实现IDisposable,因此如果Dispose没有强制转换,该方法就不会存在IDisposable,并且我已经消除了一些混乱,但他们选择不这样做,并将两个重复的方法留在班上。
Dispose使用或Close关闭流完全取决于您的个人喜好。