使用(object obj = new Object())是什么意思?

时间:2010-01-12 18:40:51

标签: c# .net using-statement

这句话在C#中意味着什么?

        using (object obj = new object())
        {
            //random stuff
        }

5 个答案:

答案 0 :(得分:13)

这意味着obj实现了IDisposible,并且会在using块之后被妥善处理掉。它在功能上与:

相同
{
  //Assumes SomeObject implements IDisposable
  SomeObject obj = new SomeObject();
  try
  {
    // Do more stuff here.       
  }
  finally
  { 
    if (obj != null)
    {
      ((IDisposable)obj).Dispose();
    }
  }
}

答案 1 :(得分:5)

using (object obj = new object())
{
    //random stuff
}

相当于:

object obj = new object();
try 
{
    // random stuff
}
finally {
   ((IDisposable)obj).Dispose();
}

答案 2 :(得分:1)

为什么它存在。

它存在于您关心其生命周期的类中,特别是在类在操作系统中包装资源并且您希望立即释放它的情况下。否则你将不得不等待CLR(非确定性)终结器。

示例,文件句柄,数据库连接,套接字连接,....

答案 3 :(得分:0)

这是一种范围对象的方法,因此在退出时调用dispose方法。它对于特定的数据库连接非常有用。如果对象没有实现idisposable

,将发生编译时错误

答案 4 :(得分:0)

using确保在使用块之后正确处理已分配的对象,即使块中发生未处理的异常也是如此。