Что эквивалентно С# для оператора 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;
Ответы
Ответ 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}