Quel est L'équivalent C# de L'instruction With dans VB? [dupliquer]

Doublon Possible:
équivalence de "Avec ... fin avec" en c#?

Il y avait une caractéristique de VB que j'aime vraiment...la déclaration With. Est-ce que C# a un équivalent? Je sais que vous pouvez utiliser using pour ne pas avoir à taper un espace de noms, mais il est limité à cela. Dans VB, vous pouvez faire ceci:

With Stuff.Elements.Foo
    .Name = "Bob Dylan"
    .Age = 68
    .Location = "On Tour"
    .IsCool = True
End With

Le même code en C# serait:

Stuff.Elements.Foo.Name = "Bob Dylan";
Stuff.Elements.Foo.Age = 68;
Stuff.Elements.Foo.Location = "On Tour";
Stuff.Elements.Foo.IsCool = true;
28
demandé sur Community 2009-07-24 05:08:01

3 réponses

Pas vraiment, vous devez assigner une variable. Donc

    var bar = Stuff.Elements.Foo;
    bar.Name = "Bob Dylan";
    bar.Age = 68;
    bar.Location = "On Tour";
    bar.IsCool = True;

Ou en C # 3.0:

    var bar = Stuff.Elements.Foo
    {
        Name = "Bob Dylan",
        Age = 68,
        Location = "On Tour",
        IsCool = True
    };
41
répondu Robert Harvey 2017-10-04 18:19:22

Mis à part les initialiseurs d'objets (utilisables uniquement dans les appels de constructeur), le meilleur que vous pouvez obtenir est:

var it = Stuff.Elements.Foo;
it.Name = "Bob Dylan";
it.Age = 68;
...
8
répondu Pavel Minaev 2009-07-24 01:14:19

La chose la plus proche en C # 3.0, est que vous pouvez utiliser un constructeur pour initialiser les propriétés:

Stuff.Elements.Foo foo = new Stuff.Elements.Foo() {Name = "Bob Dylan", Age = 68, Location = "On Tour", IsCool = true}
5
répondu foson 2009-07-24 01:12:00