我需要制作一个Stream只支持Read()操作的流 - 流将是只读且不可寻找的.我仍然必须实现很多属性,例如Position(将抛出一个NotImplementedException) - 这是很多样板代码.
有没有可能是这样的流去我只需要一些标准执行override的Read()操作?
BCL中不存在这样的流.你必须写它.在我的生活中,我已经实施了大约十几个这样的流,这也不算太糟糕.第二个更容易,因为您可以使用第一个作为模板.
我建议您继承Stream而不是从其他流继承.如果你继承了MemoryStream你的滥用继承来保存代码,这不是它的主要目的.你的派生流不会像a一样工作MemoryStream,它不是一个MemoryStream.
更喜欢继承的组合.