Was bedeutet Verwenden von (...) {...} bedeuten [duplizieren]

8
  

Mögliche Duplikate:
Verwendung der using-Anweisung in c #
Was ist der C # -Bearbeitungsblock und warum sollte ich ihn verwenden?

Ich frage mich nur, was das bedeutet? Ich habe online viele Tutorials gesehen, die folgende Syntax haben:

%Vor%

Warum wird es verwendet? Ich habe versucht, Google zu suchen, aber es kommt mit dem 'using' Schlüsselwort, das für das Einschließen der DLLs und anderer Dateien benutzt wird.

    
James Jeffery 25.01.2010, 23:51
quelle

8 Antworten

33

Die using -Anweisung

%Vor%

ist syntaktischer Zucker für Code ähnlich dem folgenden:

%Vor%

Dies ist nur für Klassen anwendbar, die IDisposable implementieren. Es ist hilfreich für die Bereinigung von Code, wo Sie Objekte haben, die zum Beispiel Systemressourcen (Dateihandles, Datenbankverbindungen, Sockets usw.) benötigen, die bereinigt werden müssen, nachdem Sie fertig sind, um die Ressource für den Rest der Ressource freizugeben System.

Theoretisch könnten Sie den Aufruf .Dispose() weglassen, aber dann müssten Sie darauf warten, dass der Garbage Collector die gehaltenen Ressourcen freigibt. Der GC ist fantastisch darin, zu wissen, wann Objekte ihre Speicherbelegung zurückgewinnen müssen, aber sie hat keine no idea , die Objekte freigeben muss, damit sie andere Systemressourcen aufgeben. Daher werden diese kritischen Ressourcen möglicherweise erst dann freigegeben, wenn der GC entscheidet, dass er den vom Eigentümer verwendeten Speicher benötigt. Daher möchten Sie Ihre Objekte definitiv entsorgen, wenn Sie damit fertig sind (wenn sie wegwerfbar sind)!

Warum würden Sie using über try / finally verwenden, dies ist nur eine Vorliebe eines Coders. Ich bevorzuge using , weil Sie sie kaskadieren können:

%Vor%

Sie benötigen dazu noch einige weitere Codezeilen mit try / finally .

using hat auch zusätzliche Vorteile. Wenn Sie beispielsweise x.Dispose direkt aufrufen, wird möglicherweise ein NullReferenceException ausgelöst, wenn x null ist, using(x) dagegen nicht.

Siehe auch:

David Pfeffer 25.01.2010, 23:54
quelle
4

Der Befehl using weist den Compiler nur an, Code zu schreiben, der die Methode Dispose für die Variable, die Sie verwenden, mit aufruft. Nur Typen, die 'IDisposable' implementieren, können mit using -Anweisungen verwendet werden.

In Ihrem Beispiel wird cmd2 entfernt, wenn der Code in {} endet.

    
Esteban Araya 25.01.2010 23:54
quelle
2

"Definiert einen Bereich, außerhalb dessen ein Objekt oder Objekte entfernt werden"
Siehe mit der Anweisung

    
Christian V 25.01.2010 23:54
quelle
2

using wird auf Objekte angewendet, die IDisposable implementieren. Es stellt sicher, dass beim Verlassen des Blocks using (ob normal oder über eine Ausnahme oder was auch immer) die Methode Dispose des Wegwerfobjekts aufgerufen wird.

    
Chris Jester-Young 25.01.2010 23:54
quelle
0

Using statement definiert einen Bereich, außerhalb dessen das Objekt oder die Objekte entfernt werden.

    
Fitzchak Yitzchaki 25.01.2010 23:54
quelle
0

Verwenden ist eine coole Art, Ressourcen zu bereinigen, es ist gleichbedeutend mit {} catch {} finally {dispose}. Effektive c # hat einen Punkt auf diesem und ich wette, Sie werden mehr als 10 ähnliche Antworten bekommen.

Ссылка

    
Hamish Grubijan 25.01.2010 23:54
quelle
0

Siehe Ссылка

Die using-Anweisung kapselt Variablen innerhalb eines Bereichs. Wenn die Ausführung den using-Block verlässt, werden alle darin enthaltenen Objekte aus dem Speicher entfernt. Sie sehen es möglicherweise mit DB-Verbindungen, so dass beim Beenden des using-Blocks die Ressourcen für diese Verbindung bereinigt und geschlossen werden.

    
Jonathan S. 25.01.2010 23:56
quelle
0

Die using -Anweisung definiert einen Bereich, in dem ein Objekt verwendet werden kann, das die IDisposable-Schnittstelle implementiert. Das Objekt wird aufgeräumt, sobald der Block verlassen wurde. Siehe:

Ссылка

    
Alison R. 25.01.2010 23:55
quelle