Was bedeutet diese Anweisung in C#?
using (object obj = new object())
{
//random stuff
}
Was bedeutet diese Anweisung in C#?
using (object obj = new object())
{
//random stuff
}
Dies bedeutet, dass obj
implementiert IDisposible
und werden nach dem Ende der Veranstaltung ordnungsgemäß entsorgt. using
Block. Es ist funktionell dasselbe wie:
{
//Assumes SomeObject implements IDisposable
SomeObject obj = new SomeObject();
try
{
// Do more stuff here.
}
finally
{
if (obj != null)
{
((IDisposable)obj).Dispose();
}
}
}
@Jay Zeng, wie in Grafik? Wenn ich meine Graphics innerhalb einer "using"-Anweisung verwende, muss ich sie nicht entsorgen?
Warum gibt es sie dann?
Es gibt sie für Klassen, bei denen die Lebensdauer wichtig ist, insbesondere wenn die Klasse eine Ressource im Betriebssystem umschließt und man sie sofort freigeben möchte. Andernfalls müssten Sie auf die (nicht deterministischen) Finalizer der CLR warten.
Beispiele, Datei-Handles, DB-Verbindungen, Socket-Verbindungen, ....
Ich widerspreche - es ist ein bekanntes Muster und so fördert die gemeinsame gute Praxis. for-Schleife ist auch syntaktischer Zucker - aber es wird immer verwendet, weil es ein gemeinsames Idiom ist auch ich versuchte zu erklären, warum Sie es verwendet sehen - und warum Sie die Nicht-Zucker-Version sehen würden
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Zu Ihrer Information ist dies in Abschnitt 8.13 der C#-Spezifikation dokumentiert.
0 Stimmen
Ist damit Ihre Frage beantwortet? Was sind die Verwendungszwecke von "using" in C#?