在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
。