Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie Code verfassen, in dem ein eine Ressource kapselndes Objekt verwendet wird, sollten Sie den Aufruf der Dispose-Methode des Objekts sicherstellen, wenn das Objekt nicht mehr verwendet wird. Verwenden Sie dafür die using-Anweisung in C#, oder implementieren Sie in anderen für die Common Language Runtime entwickelten Sprachen einen Try-/Finally-Block.
Using-Anweisung in C#
Die using-Anweisung in der Programmiersprache C# trägt zur Automatisierung des Aufrufs der Dispose-Methode bei, indem der zum Erstellen und Bereinigen eines Objekts zu verfassende Code vereinfacht wird. Die using-Anweisung ruft eine oder mehrere Ressourcen ab, führt die von Ihnen angegeben Anweisungen aus und gibt dann das Objekt frei. Beachten Sie, dass sich die using-Anweisung nur bei Objekten anbietet, deren Lebensdauer nicht die der Methode überschreitet, mit der die Objekte erstellt werden. Im folgenden Codebeispiel wird eine Instanz der ResourceWrapper-Klasse erstellt und bereinigt, wie im C#-Beispiel unter Implementieren einer Dispose-Methode dargestellt.
class myApp
{
public static void Main()
{
using (ResourceWrapper r1 = new ResourceWrapper())
{
// Do something with the object.
r1.DoSomething();
}
}
}
Der vorhergehende Code, in den die using-Anweisung einbezogen ist, entspricht dem folgenden Code.
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();
}
}
}
Mit der using-Anweisung in C# können Sie mehrere Ressourcen durch eine einzige Anweisung abrufen. Dies entspricht in interner Hinsicht geschachtelten using-Anweisungen. Weitere Informationen sowie ein Codebeispiel finden Sie unter using-Anweisung (C#-Referenz).
Try-/Finally-Block
Wenn Sie verwalteten Code, in dem ein eine Ressource kapselndes Objekt verwendet wird, nicht in C# verfassen, stellen Sie mit einem Try-/Finally-Block sicher, dass die Dispose-Methode des Objekts aufgerufen wird. Im folgenden Codebeispiel wird eine Instanz der Resource-Klasse erstellt und bereinigt, wie im Visual Basic-Beispiel unter Implementieren einer Dispose-Methode dargestellt.
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