尽管我很同情您删除对Microsoft.VisualBasic
命名空间的所有引用的愿望,并且尽管我认为这样做很有价值,但有时它只是不值得麻烦。命名空间确实包含一些有用的工具,没有它就不容易复制。
例如,TextFieldParser
浮现在脑海中。它允许您轻松读取 CSV 和固定宽度文件。.NET 框架中没有其他类似的类。那么,为了不引用Microsoft.VisualBasic
命名空间而重新发明轮子是否值得?我会争辩说这不值得。
虽然可以重现FileGet
和FilePut
使用FileStream
、StreamReader
、和类的行为StreamWriter
,但可能不值得这么费劲。和方法是专门为向后兼容而提供的,所以如果与旧系统兼容是您的目标,尽管我这么说很痛苦,但使用and是一个合适的解决方案。BinaryReader
BinaryWriter
FileGet
FilePut
FileGet
FilePut
但是,其中一些建议取决于数据的类型。例如,如果结构只包含固定宽度的字符串,那么使用StreamReader
andStreamWriter
或TextFieldParser
. BinaryReader
或者,如果它只包含整数,那么使用and可能很容易重现BinaryWriter
。
但是,即使您可以使用其他非仅 VB 的类轻松地重现逻辑,这样做也不会为您带来任何好处。事实上,您的代码会更复杂,并且不会自我记录。当您看到使用FileGet
and的代码时FilePut
,不仅很容易分辨出正在做什么,而且很明显它是为了向后兼容。如果您用自己的逻辑替换它们,那么如果不对代码添加注释,向后兼容的必要性就不会很明显。
如果您不喜欢看它们,我当然可以理解,那么将它们包装在包装器类中可能是值得的。例如,您可以创建一个具有加载/保存方法的数据访问样式类,该类在内部仅使用FileGet
and FilePut
。无论如何,这样做将是一个好习惯。这样,如果您选择以不同的格式或不同的数据源(例如数据库)存储数据,您可以在一个类中更改它,而无需重写所有代码。