首页 > 解决方案 > StreamWrite WriteLine 不能作为委托

问题描述

我想创建一个简单的记录器,为此我以这种方式使用委托:

delegate void Logger(string message);

但是当我尝试使用下面的方法创建一个 Logger 时,这不会将任何内容附加到文件中。

Logger CreateFileLogger(string filePath) {
            if (!File.Exists(filePath)) File.Create(filePath);
            StreamWriter stream = File.AppendText(filePath);
            return stream.WriteLine;
        }

我不能自信地说这是 StreamWriter 类的问题还是代表的问题,无论如何我认为是第一个。

提前致谢。

标签: c#.netlambdadelegatesstreamwriter

解决方案


您永远不会处理流,并且永远不会刷新流(因为您没有写入足够的内容),因此不会将任何内容写入文件。你不应该像这样泄露一次性资源。

幸运的是,根本不需要处理流。只需使用File.AppendAllText而不是创建流并自己管理它。


推荐阅读