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 に答える