提供能确保正确使用 IDisposable 对象的方便语法
实例:
- using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\Public\Documents\test.txt"))
- {
- string s = null;
- while((s = sr.ReadLine()) != null)
- {
- Console.WriteLine(s);
- }
- }
复制代码
可以将多个对象与 using 语句一起使用,但必须在 using 语句中声明这些对象,如以下示例所示:
- using (Font font3 = new Font("Arial", 10.0f),
- font4 = new Font("Arial", 10.0f))
- {
- // 使用font3和font4.
- }
复制代码
可以实例化资源对象,然后将变量传递给 using 语句,但这不是最佳做法。在这种情况下,该对象将在控制权离开 using 块之后保持在范围内,即使它可能将不再具有对其非托管资源的访问权也是如此。换句话说,再也不能完全初始化该对象。如果试图在 using 块外部使用该对象,则可能导致引发异常。由于这个原因,通常最好是在 using 语句中实例化该对象并将其范围限制在 using 块中。
- Font font2 = new Font("Arial", 10.0f);
- using (font2) // [color=Magenta]不推荐[/color]{
- // 使用 font2
- }
- // font2 仍在范围
- //但方法调用将抛出一个异常
- float f = font2.GetHeight();
复制代码 |