8.13 using 语句

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 语句以确保所涉及的文件在写入或读取操作后正确关闭。

 

你可能感兴趣的:(8.13 using 语句)