2009-03-24 13 views
1

Ich sehe es verwendet und ich habe hier und da gelesen und es hat etwas mit Speicherverwaltung zu tun. Die Frage ist, woher wissen Sie, wann Sie es verwenden sollten? Wie unterscheiden Sie Variablen oder Instanzen, die ein Problem verursachen, wenn Sie sie nicht verwenden?Wann sollten Sie (...) {...} in C# verwenden?

Genaue doppelte: What is the C# Using block and why should I use it?

+0

http://stackoverflow.com/questions/212198/what-is-the-c-using-block-and-why-should-i-use-it Duplizieren. –

+0

http://stackoverflow.com/questions/567138/when-should-i-use-using-blocks-in-c/568231 http://stackoverflow.com/questions/278902/using-statement-vstry-try- http://stackoverflow.com/questions/614959/using-the-using-statement-in-c –

Antwort

8

Jedes Mal, wenn ein Objekt einer Klasse instanziieren, die IDisposable implementiert.

1

Die using-Anweisung wird mit Klassen verwendet, die IDisposable implementieren. Die using-Anweisung stellt einen Bereich für die Disposable-Instanz der Klasse bereit und ruft die Methode Dispose für das Objekt auf, wenn der Bereich beendet wird. Sie würden IDisposable immer dann implementieren, wenn Sie einige verwaltete Ressourcen proaktiv freigeben möchten oder nicht verwaltete Ressourcen haben, die bereinigt werden müssen, wenn das verwaltete Objekt als Garbage Collected erfasst (oder entsorgt) wird.

0

es hat etwas mit der Speicherverwaltung zu tun

Nicht wirklich. Es hat mit unmanaged Ressourcen zu tun: so ziemlich alles, was ein Computer verwenden kann außer Speicher.

Das Problem besteht darin, dass Sie den Müllsammler nicht dazu zwingen können, Ihre Objekte zu bestimmten Zeiten aufzuräumen. Mit Ressourcen wie Datenbankverbindungen, Sockets, Semaphoren usw. möchten Sie diese jedoch nicht länger festhalten. Normalerweise müssten Sie ein try/finally-Konstrukt verwenden. Die using-Anweisung bietet nur einen etwas schöneren Mechanismus für dieses Szenario. Erreichen Sie eine using Anweisung, wenn Sie irgendein Objekt haben, das die IDisposable Schnittstelle implementiert.

Verwandte Themen