共用方式為


使用封裝資源的物件

當您撰寫的程式碼使用封裝資源的物件時,您應該確定在使用完該物件時,會呼叫物件的 Dispose 方法。您可以使用 C# 的 using 陳述式,或其他適用於 Common Language Runtime 的程式語言中實作 try/finally 區塊,來執行這個動作。

C# 的 Using 陳述式

C# 程式語言的 using 陳述式會以較為自動的方式呼叫 Dispose 方法,您就無須撰寫太複雜的程式碼來建立和清除物件。using 陳述式會取得一或多項資源、執行您指定的陳述式,然後處置 (Dispose) 該物件。請注意,只有在物件的存留期 (Lifetime) 不超過其建構方法時,using 陳述式才會有用。下列程式碼範例會建立並清除 ResourceWrapper 類別的執行個體,一如之前在 C# 實作 Dispose 方法範例中所提供的說明。

class myApp
{
   public static void Main()
   {
      using (ResourceWrapper r1 = new ResourceWrapper())
      {
         // Do something with the object.
         r1.DoSomething();
      }
   }
}

前面含有 using 陳述式的程式碼,就相當於下列情形。

class myApp
{
   public static void Main()
   {
      ResourceWrapper r1 = new ResourceWrapper();
      try
      {
         // Do something with the object.
         r1.DoSomething();
      }
      finally
      {
         // Check for a null resource.
         if (r1 != null)
         // Call the object's Dispose method.
         r1.Dispose();
      }
   }
}

C# 的 using 陳述式允許您以單一陳述式取得多項資源,其內部相當於巢狀的 using 陳述式。如需詳細資訊和程式碼範例,請參閱using 陳述式 (C# 參考)

Try/Finally 區塊

當您在 C# 以外的語言中撰寫使用封裝資源之物件的 Managed 程式碼時,請使用 try/finally 區塊來確保會呼叫物件的 Dispose 方法。下列程式碼範例會建立和清除 Resource 類別的執行個體,一如在 Visual Basic 實作 Dispose 方法範例中所提供的說明。

class myApp
   Public Shared Sub Main()
      Resource r1 = new Resource()
      Try
         ' Do something with the object.
         r1.DoSomething()
      Finally
         ' Check for a null resource.
         If Not (r1 is Nothing) Then
            ' Call the object's Dispose method.
            r1.Dispose()
         End If
      End Try
   End Sub
End Class

請參閱

參考

using 陳述式 (C# 參考)

其他資源

清除 Unmanaged 資源