在C#中使用“using”有什么用途

用户kokos通过提及using关键字来回答C#问题的精彩隐藏特性。 你能详细说明一下吗? 什么是用途using


using语句的原因是为了确保对象在超出作用域时尽快处理,并且不需要显式代码来确保发生这种情况。

就像理解C#中的'using'语句一样,.NET CLR也会转换

using (MyResource myRes = new MyResource())
{
    myRes.DoSomething();
}

{ // Limits scope of myRes
    MyResource myRes= new MyResource();
    try
    {
        myRes.DoSomething();
    }
    finally
    {
        // Check for a null resource.
        if (myRes != null)
            // Call the object's Dispose method.
            ((IDisposable)myRes).Dispose();
    }
}

由于很多人仍然这样做:

using (System.IO.StreamReader r = new System.IO.StreamReader(""))
using (System.IO.StreamReader r2 = new System.IO.StreamReader("")) {
   //code
}

我想很多人仍然不知道你可以这样做:

using (System.IO.StreamReader r = new System.IO.StreamReader(""), r2 = new System.IO.StreamReader("")) {
   //code
}

像这样的事情:

using (var conn = new SqlConnection("connection string"))
{
   conn.Open();

    // Execute SQL statement here on the connection you created
}

这个SqlConnection将会被关闭而不需要显式地调用.Close()函数,即使抛出一个异常,这也会发生,而不需要try / catch / finally

链接地址: http://www.djcxy.com/p/52953.html

上一篇: What are the uses of "using" in C#

下一篇: Hidden Features of VB.NET?