4
A
回答
13
new SqlConnection(connectionString)
根據提供的連接字符串創建新的SqlConnection
實例。
SqlConnection cn = ...
其分配給新的局部變量cn
(作用域到using
語句),其保持所構造的連接對象。
using(...)
是一個using
聲明 - 它保證了連接末Dispose()
-d,即使有異常拋出(在這種情況下Dispose()
手段將其關閉/釋放到池等)
整個代碼是本質:
{ // this { } scope is to limit the "cn"
SqlConnection cn = new SqlConnection(connectionString);
try { // the body of the using block
...
} finally { // dispose if not null
if(cn != null) { cn.Dispose(); }
}
}
2
可以確保SqlConnection的是在「使用」範圍
4
它排除了SqlConnection
不是不再需要它後結束時被銷燬。在這種情況下,SqlConnection
可能會留下一些非託管資源,您應該清理它們。 SqlConnection
執行IDisposable
,這意味着您可以(應該)在完成使用後調用Dispose
。
它基本上是一個速記:
try {
SqlConnection cn = new SqlConnection(connectionString);
// whatever other code
}
finally {
if (cn != null)
{
cn.Dispose();
}
}
當您使用using
的cn
範圍也擴大外try
(以finally
)。
如果您想了解更多信息,請查看MSDN's article關於此主題。
1
using語句可以應用於實現接口IDisposable
的對象。 在使用範圍的末尾,在對象上調用Dispose。
1
0
這確保在控制離開使用(){..}子句時釋放連接。
由於異常,函數返回,從循環中斷,轉到或正常離開作用域,可能會發生離開。很方便。
相關問題
- 1. 這段代碼做了什麼?
- 2. 這段代碼做了什麼? (awk)
- 3. 這段代碼做了什麼?
- 4. C++這段代碼做了什麼?
- 5. 這段代碼做了什麼?
- 6. 這段代碼做了什麼?
- 7. 這段代碼究竟做了什麼?
- 8. 這段代碼做了什麼蛇?
- 9. 這段代碼做了什麼?
- 10. Normalized cut:這段代碼做了什麼?
- 11. 這段代碼做了什麼?
- 12. 這段代碼做了什麼?
- 13. 這段代碼究竟做了什麼?
- 14. 這段代碼做了什麼?
- 15. jQuery:這段代碼做了什麼?
- 16. 這段代碼做了什麼?
- 17. 這段代碼做了什麼? 「data.target == this」
- 18. 這個C++代碼段做了什麼?
- 19. 這段代碼做了什麼(C)
- 20. 這段JavaScript代碼做了什麼?
- 21. 這段代碼片斷做了什麼?
- 22. 這段代碼做了什麼?
- 23. 這段代碼做了什麼?
- 24. 這段代碼做什麼錯了
- 25. 這段代碼做了什麼?
- 26. 這段代碼做了什麼?
- 27. 這段代碼做了什麼?
- 28. 這行代碼在這段代碼中做了什麼?
- 29. 這段代碼在這裏做什麼?
- 30. 我的網站被黑了 - 這段代碼做了什麼?
嚴格來說,cn的範圍是*外部* try#... – 2010-05-31 07:56:15
謝謝Marc。爲更大的利益編輯。 – 2010-05-31 08:04:36