- 使用塊將處置OdbcConnection。
- 正常範圍規則適用於在使用塊內聲明的任何內容。
- 使用塊不會清除任何其他IDisposable對象。它只是清理聲明的項目
- 請注意,您可以使用塊嵌套,或者如果項目是相同的類型,可以同時初始化多個項目。
多一點信息,請參閱我的其他答案的最高位爲How do I use the using keyword in C#。
我還應該提到,只要您完成了釋放資源,就可以關閉(處置)連接。準則指出,調用者應該能夠重複調用處置方法。使用塊本質上只是一個安全網,並且允許在大多數情況下編寫更清晰的代碼。
[編輯] 例如多個初始化在一個使用:在使用相同的初始化多於一個的對象,而無需使用塊,如果對象是同一類型的具有嵌套:
using (Bitmap b1 = new Bitmap("file1"), b2 = new Bitmap("file2"))
{ ... }
喬爾Coehoorn提到堆疊,其被嵌套,但省略了括號,多因爲您可以省略for
或if
聲明中的大括號。用戶界面不會重新格式化縮進。我很好奇IL的樣子。
using(Bitmap b = new Bitmap("filex"))
using(Graphics g = Graphics.FromImage(b))
{
}
這是一個錯誤使用把不同的對象在相同的使用error CS1044: Cannot use more than one type in a for, using, fixed, or declaration statement.
// error CS1044
using(Bitmap b = new Bitmap("filex"), Graphics g = Graphics.FromImage(b))
他們甚至不必是相同的類型:您可以「堆疊」多用statments在一起(創建例如同一級別的連接和命令對象),以避免創建深層嵌套的作用域。 – 2009-02-04 21:47:08