Подтвердить что ты не робот

Что эквивалентно С# для оператора With в VB?

Возможный дубликат:
Equivalence of "With…End With" in c#?

Была одна особенность VB, которая мне очень нравится... инструкция With. Имеет ли С# эквивалент? Я знаю, что вы можете использовать using, чтобы не вводить пространство имен, но оно ограничено только этим. В VB вы можете сделать это:

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

Тот же код в С# будет:

Stuff.Elements.Foo.Name = "Bob Dylan";
Stuff.Elements.Foo.Age = 68;
Stuff.Elements.Foo.Location = "On Tour";
Stuff.Elements.Foo.IsCool = true;
4b9b3361

Ответ 1

Не совсем, вам нужно назначить переменную. Так

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

Или в С# 3.0:

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

Ответ 2

Помимо инициализаторов объектов (используемых только в вызовах конструктора), вы можете получить лучшее:

var it = Stuff.Elements.Foo;
it.Name = "Bob Dylan";
it.Age = 68;
...

Ответ 3

Самое близкое в С# 3.0 - это то, что вы можете использовать конструктор для инициализации свойств:

Stuff.Elements.Foo foo = new Stuff.Elements.Foo() {Name = "Bob Dylan", Age = 68, Location = "On Tour", IsCool = true}