在 C# 中有 using 表达式, 可以在结束这个表达式的 scope 的时候自动释放 disposable. 在 C# 8.0 之后, 更是提供了单行的 using 表达式, 它会在所在方法结束后自动释放 disposable, 而不是 using 所定义的 scope 中. 这样可以避免过深的嵌套代码出现, 不过需要在写代码的时候注意 scope 的范围.
对流进行写入
下面演示将某个文本写入到文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
staticvoidWriteToFile() { var msg = "Hello all, welcome to the c sharp world!"; var bytes = Encoding.UTF8.GetBytes(msg); using (var stream = new FileStream("1.txt", FileMode.OpenOrCreate)) { if (stream.CanWrite) { stream.Write(bytes); } else { System.Console.WriteLine("写入失败!"); } } }
如果支持 C# 8.0, 则可以简化为如下(使用 using 单行表达式):
1 2 3 4 5 6 7 8 9 10 11 12 13 14
staticvoidWriteToFile() { var msg = "Hello all, welcome to the c sharp world!"; var bytes = Encoding.UTF8.GetBytes(msg); usingvar stream = new FileStream("1.txt", FileMode.OpenOrCreate); if (stream.CanWrite) { stream.Write(bytes); } else { System.Console.WriteLine("写入失败!"); } }