C # Verwenden von Schlüsselwörtern, die in einer einzelnen Zeile verschachtelt sind

8

Normalerweise habe ich so etwas gemacht (nur ein Beispiel):

%Vor%

Ist nicht besser, nur zu tun:

%Vor%

Aber ich bin mir nicht sicher, ob in dieser kurzen Syntax alle Ressourcen entsorgt werden (Stream) oder nur XmlTextReader?

Vielen Dank im Voraus für Ihre Antwort.

    
binball 09.03.2010, 12:24
quelle

3 Antworten

20

Nein; das garantiert nicht, dass Stream entsorgt wird, wenn der Konstruktor XmlTextReader eine Ausnahme auslöst. Aber Sie können tun:

%Vor%     
Marc Gravell 09.03.2010, 12:26
quelle
2

Was ist mit (ich benutze das jetzt):

%Vor%

Die zweite Verwendung ist die referenzierte Verwendung von der ersten - keine Klammern erforderlich.

    
TomTom 09.03.2010 12:27
quelle
2

Die Referenz Dokumentation gibt an, dass das zu entsorgende Objekt in der using-Anweisung deklariert werden muss . Da für den Stream keine Deklaration vorliegt, wird die Dispose-Methode nicht aufgerufen.

In Ihrem Fall könnten Sie den Stream jedoch vollständig überspringen und den Konstruktor für den TextReader verwenden, der einen URL-Parameter verwendet. Der zugrunde liegende Stream wird geschlossen, wenn der Leser entsorgt wird.

%Vor%     
tvanfosson 09.03.2010 12:34
quelle

Tags und Links