CLR Via C#读书笔记——using语句【2011-01-19】

using System; using System.IO; public static class Program { public static void Main() { Byte[] bytesToWrite=new Byte[]{1,2,3,4,5}; using(FileStream fs=new FileStream("Temp.dat",FileMode.Create)) { fs.Write(bytesToWrite,0,bytesToWrite.Length); } File.Delete("Temp.dat"); } } 

 

首先在using语句内初始化一个对象,并将其引用保存在一个变量中。然后在和using语句匹配的大括号内访问该变量。编译这段代码时,编译器会自动产生一个try块和一个finally块。在finally块中,编译器会产生代码将变量转型为一个IDisposable接口,并调用该接口上的Dispose方法。很明显,using语句只能用于那些实现了IDisposable接口的类型。

 

C#的using语句支持初始化多个变量,只要这些变量的类型相同。

 

using语句同样也可以在实现了IDisposable接口的值类型中应用。

 

如果在using代码块中抛出异常,资源还是会被清理的,这是由于using被编译成一个try块和finally块,资源清理在finally中执行。

你可能感兴趣的:(C#,读书,Class,byte,编译器)