Entsorgungsauftrag in C # mit Blöcken

7

Ich bin wirklich gestört, da ich using Blöcke in C # verschachteln muss. Es ist nicht elegant und es braucht viel Platz. In einigen Fällen scheint dies unvermeidbar zu sein, weil ich Variablen mit unterschiedlichen Datentypen deklarieren muss, aber es scheint, als ob der Fall des einfachen Typs vereinfacht werden könnte. Was ich unter "der single-type case" verstehe, ist, wenn mehrere Variablen des gleichen Typs in Serie deklariert werden. Hier ist ein Beispiel von dem, worüber ich rede:

%Vor%

Ich möchte, dass dies so funktioniert, dass a vor b erstellt wird und dass b vor a liegt. Leider scheint es in der C # -Spezifikation keine Richtung zu geben, wie es tatsächlich passieren sollte. Es sieht so aus, als ob der Microsoft C # -Compiler es so behandelt, da dies die Ausgabe des obigen Programms ist:

%Vor%

Allerdings kann ich nicht garantieren, dass dies ein deterministisches Verhalten ist. Kann jemand die Idee bestätigen oder widerlegen, dass diese Sequenz deterministisch ist? Referenzen wären großartig. Und wenn es bruchanfällig ist (undokumentiert, usw.), ist es wahrscheinlich nicht nützlich, aber das ist gut zu wissen.

Es gibt bereits eine ähnliche Frage zu deterministische Entsorgung , die vom Multiple-Type-Fall handelt, und ich verstehe, dass es dort keine wirkliche Lösung gibt, abgesehen von cleveren Syntaxtricks. Die meisten Antworten dort verpassen den Punkt sowieso. Meine Frage betrifft nur den Einzelfall und ob diese Verfügung deterministisch und verlässlich ist oder nicht. Danke.

    
Philip Hanson 10.08.2010, 13:43
quelle

2 Antworten

18

Aus der C # -Spezifikation:

"Eine using Anweisung der Form using (ResourceType r1 = e1, r2 = e2, ..., rN = eN) entspricht genau einer Folge verschachtelter using Anweisungen:"

%Vor%

Es scheint also fair zu sagen, dass dies ziemlich in Stein gemeißelt ist.

    
mquander 10.08.2010, 13:47
quelle
9

Gibt es einen Grund, warum Sie den Mehrfachnutzungstrick nicht verwenden können? Das ist völlig deterministisch und löst dein Problem

%Vor%     
thecoop 10.08.2010 13:46
quelle