public class SimpleLogger
{
static readonly string logFile = ConfigurationManager.AppSettings["LogFile"];
static StreamWriter GetStream()
{
return File.Exists(logFile) ?
File.AppendText(logFile) : File.CreateText(logFile);
}
public static void Write(string msg)
{
using (var sw = GetStream())
{
sw.Write(msg);
}
}
}
上面的代码使用失败,因为它似乎没有正确关闭/处理流。随后的写入会给出“正在使用的文件”IOException。
如果将类修改为使用非静态方法,它似乎可以正常工作。
我不明白为什么会有任何行为差异?