using 语句获取一个或多个资源,执行一个语句,然后释放该资源。
using-statement:
using ( resource-acquisition ) embedded-statement
resource-acquisition:
local-variable-declaration
expression
using 语句转换为三部分:获取、使用和释放。资源的使用部分被隐式封闭在一个含有 finally 子句的 try 语句中。此 finally 子句用于释放资源。如果所获取资源是 null,则不会对 Dispose 进行调用,也不会引发任何异常。
下面的示例创建一个名为 log.txt 的文件并将两行文本写入该文件。然后该示例打开这个文件进行读取,并将它所包含的文本行复制到控制台。
using System;
using System.IO;
class Test
{
static void Main() {
using (TextWriter w = File.CreateText("log.txt")) {
w.WriteLine("This is line one");
w.WriteLine("This is line two");
}
using (TextReader r = File.OpenText("log.txt")) {
string s;
while ((s = r.ReadLine()) != null) {
Console.WriteLine(s);
}
}
}
}
由于 TextWriter 和 TextReader 类实现了 IDisposable 接口,因此该示例可以使用 using 语句以确保所涉及的文件在写入或读取操作后正确关闭。