我有一个具有流类型属性的类,如下所示:
public class Csv
{
private StreamReader streadReder;
private StreamWriter streamWriter;
}
是否需要实施IDisposable
?如果需要,请提供链接。因为刺穿IDisposable
似乎有点混乱。
答案 0 :(得分:2)
是的,在这种情况下你应该实现IDisposable。代码分析中甚至还有一个设计警告: CA1001: Types that own disposable fields should be disposable。
最简单的实现可能如下所示:
public class Csv : IDisposable
{
private StreamReader streadReader;
private StreamWriter streamWriter;
public void Dispose()
{
if (streadReader != null)
{
streadReader.Dispose();
}
if (streamWriter != null)
{
streamWriter.Dispose();
}
}
}
答案 1 :(得分:1)
如果Csv
类型拥有流资源并负责处理它们,那么它也应该实现IDipsosable
并处理值
public class Csv : IDisposable {
...
public void Dispose() {
streamReader.Dispose();
streamWriter.Dispose();
}
}