在c#中使用'使用'块的真正含义是什么?

时间:2011-06-24 05:58:57

标签: c# sql-server-2005 using

  

可能重复:
  What is the C# Using block and why should I use it?

using block的重要性是什么?为什么我要在using block?

中编写我的代码

例如:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString);
using (con)
{
    con.Open();            
    //
    // Some code
    //
    con.Close();
}

这是使用using statement的正确方法吗?

5 个答案:

答案 0 :(得分:1)

usingIDisposable界面一起使用。

它保证在退出作用域之前,将在using子句中的对象上调用Dispose方法。

没有其他原因。

答案 1 :(得分:1)

using (x) {...}只是syntactic sugar

try
{
   ...
}
finally
{
  x.Dispose();
}

答案 2 :(得分:0)

定义是:“定义一个范围,在该范围之外将放置一个或多个对象。” 有关详细信息,请参阅MSDN

答案 3 :(得分:0)

  

当您使用的对象时   封装任何资源,你必须   完成后确保完成   对象,对象的Dispose   方法被调用。这可以做到   更容易使用using语句   在C#。

更多信息: http://www.codeproject.com/KB/cs/tinguusingstatement.aspx

答案 4 :(得分:0)

using语句确保即使在对象上调用方法时发生异常,也会调用Dispose(of IDisposable)。在您的示例中,SqlConnection将关闭并放置在using块的末尾。

您的示例不是定义使用块的常用方法,因为您可能会在使用块后意外重用con。

试试这个:

using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["newConnectionString"].ConnectionString))
{
    con.Open();            
    //
    // Some code
    //
}