mit verschiedenen Arten in einer using-Anweisung (C#)

Da die C# using-Anweisung ist nur syntaktischer Zucker für try/finally{Entsorgung} warum muss es akzeptieren mehrere Objekte NUR, WENN SIE vom GLEICHEN TYP SIND?

Ich verstehe es nicht, da alle, die Sie benötigen werden, ist IDisposable. Wenn alle von Ihnen implementieren IDisposable sollte es in Ordnung sein ist es aber nicht.

Speziell ich gewohnt bin zu schreiben

using (var cmd = new SqlCommand())
{
    using (cmd.Connection)
    {
        //code
    }
}

denen ich compact in:

using (var cmd = new SqlCommand())
using (cmd.Connection)
{
    //code
}

und ich möchte kompakte ferner in:

using(var cmd = new SqlCommand(), var con = cmd.Connection)
{
    //code
}

aber ich kann nicht. Ich könnte wahrscheinlich, einige würden sagen, schreiben :

using((var cmd = new SqlCommand()).Connection)
{
    //code
}

da ich alle entsorgen müssen, ist der Anschluss und nicht der Befehl, sondern das ist neben dem Punkt.

  • Ich denke, das ist eigentlich eine gute Idee. Ich würde denken, es ist nur etwas, das einfach noch nicht implementiert ist. Ich würde sein überrascht, wenn es eine tatsächliche, konkrete Grund, warum dieser nicht existiert. Ich könnte falsch sein, aber...
  • Lerne ich etwas neues hier? Was ist mit der zweiten, nicht-zweckgebundene using-Anweisung im oberen Beispiel? Nicht, dass Artikel zu den Rahmen?
  • das argument der Verwendung muss ein Ausdruck, der konvertiert werden kann IDisposable. Eine Erklärung ist (nur einer) ein solcher Ausdruck.
  • Ja, Sie (wahrscheinlich) etwas neues gelernt. Die syntax der Verwendung mit(IDisposableInstance) Anweisung;. So wie Henk Holterman, sagte eine Zuweisung ist eine operation, deren Ergebnis (oft ungenutzte, aber hier verwendet) ist der zugewiesene Wert.
  • Am Ende habe ich denke, ich werde einfach verwenden Sie die gestapelte version (die 2. vorgelegt in der Frage).. 🙁
  • Inspiriert durch deine Frage habe ich versucht, das folgende Idee: stackoverflow.com/questions/974484/...
  • 8 17:57) : Gut, ich klingt vielleicht abgedroschen/kitschig, aber wenn die Frage dazu beigetragen, Sie in irgendeiner Weise, einschließlich das erlernen etwas, das ich Fragen könnte für ein upvote? 😀
  • Die syntax, die Sie bieten ist nahe genug,

Schreibe einen Kommentar