Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Bei Block äquivalent in C #?                                      15 Antworten                          
  •     
    

Ich weiß, dass C # das using Schlüsselwort, aber using verfügt über das Objekt automatisch.

Gibt es die Äquivalenz von With...End With in Visual Basic 6.0 ?

War es hilfreich?

Lösung

C # nicht über eine äquivalente Sprache für das Konstrukt.

Andere Tipps

Es ist nicht gleichwertig, sondern würde diese Syntax Arbeit für Sie?

Animal a = new Animal()
{
    SpeciesName = "Lion",
    IsHairy = true,
    NumberOfLegs = 4
};

Es gibt kein Äquivalent, aber ich denke, eine Syntax Diskussion interessant sein könnte!

Ich mag;

NameSpace.MyObject.
{
    active = true;
    bgcol = Color.Red;
}

Alle anderen Vorschläge?

Ich kann mir vorstellen, dass diese Sprache-Funktion hinzugefügt schwierig sein würde, im Wesentlichen nur ein vorverarbeitet.

EDIT:

Ich war krank für diese Funktion des Wartens, so ist hier und Erweiterung, die ein ähnliches Verhalten erreicht.

/// <summary>
/// C# implementation of Visual Basics With statement
/// </summary>
public static void With<T>(this T _object, Action<T> _action)
{
    _action(_object);
}

Nutzung;

LongInstanceOfPersonVariableName.With(x => {
     x.AgeIntVar = 21;
     x.NameStrVar = "John";
     x.NameStrVar += " Smith";
     //etc..
});

EDIT: Interessanterweise scheint es mich jemand auf den Stempel schlagen, wieder, mit dieser "Lösung". Oh well ..

Ich denke, das Äquivalent der folgenden VB :

With SomeObjectExpression()
  .SomeProperty = 5
  .SomeOtherProperty = "Hello"
End With

Wäre dies C # :

{
  Var q=SomeOtherExpression();
  q.SomeProperty = 5;
  q.SomeOtherProperty = "Hello";
}

Der einzige wirkliche Unterschied ist, dass in vb, die Kennung keinen Namen „q“ hat, sondern ist einfach eine Standard-Kennung verwendet, wenn eine Periode ohne andere Kennung, bevor es auftritt.

Es gibt kein Äquivalent zu With ... End With in C # .

Hier ist eine Vergleichstabelle für Sie die Unterschiede zwischen Visual Basic und C # veranschaulicht.

Es gibt keine äquivalente Struktur in C #. Dies ist eine Visual Basic 6.0 / VB.NET Funktion.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top