2011-11-23 18 views

回答

26

using聲明定義的資源被處置,這是using有利的主要原因。

using語句確保即使 發生異常,而你是調用對象的方法是調用Dispose 。你可以通過將對象放在一個try塊中並且然後在finally塊中調用Dispose來實現相同的結果;然後你可以通過 來獲得相同的結果。實際上,這是編譯器如何翻譯 使用語句。
http://msdn.microsoft.com/en-us/library/yh598w02%28v=VS.100%29.aspx

+1

+1爲描述的鏈接和15秒。比我快。 ;-) – Fischermaen

+0

謝謝!只是等待計時器接受回答:) –

+0

,同時我得到-1 ... – Fischermaen

1

是的,使用塊的資源將被設置。

1

你不會。其實using塊是相同的,如果你使用try{}catch{}finally{}結構與Dispose方法調用在finally塊。所以它會被稱爲無論如何。

1

是的,該元素將被丟棄,因爲該呼叫是tryfinally塊的一部分,其中using轉換成其中的finally塊。

從C#規格的8.13:

using語句被翻譯成三個部分:獲取,使用 和處置。該資源的使用被隱式地包含在包含finally子句的語句try 中。這最後一條配置了資源的 。如果獲取空資源,則不會調用 Dispose,也不會拋出異常。

所以你不需要手動處理它,並且我不確定你自己的catch塊在哪裏。

相關問題