Eine using
Aussage ist immer besser, weil ...
- Sie nicht
Dispose()
nennen vergessen kann, auch wenn der Code verschiedene Codepfade
- entwickelt sich zu
Dispose()
aufgerufen wird, auch wenn es eine Ausnahme ist. Es prüft auch auf null
vor dem Aufruf Dispose()
, was nützlich sein kann (vorausgesetzt, Sie rufen nicht nur new
).
Ein nicht offensichtlich (für mich jedenfalls) Trick mit using
ist, wie Sie übermäßige Verschachtelung vermeiden können, wenn Sie mehrere Einweg-Objekte haben:
using (var input = new InputFile(inputName))
using (var output = new OutputFile(outputName))
{
input.copyTo(output);
}
Der Formatierer VS Code wird die beiden Aussagen verlassen Start in der gleichen Spalte.
In der Tat, in einigen Situationen Sie nicht einmal die Anweisung using wiederholen müssen ...
using (InputFile input1 = new InputFile(inputName1), input2 = new InputFile(inputName2))
die Beschränkungen für die Deklaration von mehreren Variablen auf der gleichen Linie hier gilt jedoch, so dass die Typen müssen identisch sein und Sie können den impliziten Typ var nicht verwenden.
Vielen Dank! Das war genau die Art von Antwort, nach der ich suchte. – mkelley33
Ein weiterer kleiner Punkt, den niemand erwähnt hat, ist, dass die Verwendung von "using" verhindert, dass Sie versehentlich den Inhalt der Variablen "ctx" nach der Initialisierung, aber vor der Entsorgung verändern. Sie möchten nicht versehentlich ein anderes als das von Ihnen erstellte Objekt entsorgen. –