有没有一种方法可以使用“;使用“;但保持文件打开

本文关键字:使用 文件 一种 可以使 方法 有没有 | 更新日期: 2023-09-27 18:29:11

通常,"使用"是正确访问和处理文件流的首选方法。

我经常需要打开文件(如下所示)。在这种情况下,可以使用"使用"结构吗?

public class logger
{
    private StreamWriter sw;
    public logger(string fileName)
    {
        sw = new StreamWriter(fileName, true);
    }
    public void LogString(string txt)
    {
        sw.WriteLine(txt);
        sw.Flush();
    }
    public void Close()
    {
        sw.Close();
    }
}

有没有一种方法可以使用“;使用“;但保持文件打开

是的,您将Logger设为可丢弃的,并让它在其dispose方法中处理流。

// I make it sealed so you can use the "easier" dispose pattern, if it is not sealed
// you should create a `protected virtual void Dispose(bool disposing)` method.
public sealed class logger : IDisposable
{
    private StreamWriter sw;
    public logger(string fileName)
    {
        sw = new StreamWriter(fileName, true);
    }
    public void LogString(string txt)
    {
        sw.WriteLine(txt);
        sw.Flush();
    }
    public void Close()
    {
        sw.Close();
    }
    public void Dispose()
    {
        if(sw != null)
            sw.Dispose();
    }
}