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