1

我有一个具有流类型属性的类,如下所示:

public class Csv
{
  private StreamReader streadReder;
  private StreamWriter streamWriter;
}

是否需要实施IDisposable?如果需要,请提供链接。因为刺穿似乎有点混乱IDisposable

4

2 回答 2

2

是的,您应该在这种情况下实现 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();
        }
    }
}
于 2013-03-15T22:39:47.277 回答
1

如果该Csv类型拥有流资源并负责处理它们,那么它也应该实现IDipsosable并处理这些值

public class Csv : IDisposable { 
  ...
  public void Dispose() { 
    streamReader.Dispose();
    streamWriter.Dispose();
  }
}
于 2013-03-15T22:34:36.450 回答