Есть ли в C# аналог инструкции With...End With?
Инструкция With...End With в VB позволяет выполнять серию операторов, которые многократно обращаются к одному объекту, используя упрощённый синтаксис доступа к его членам. Есть ли аналог в C#? Нет. Ближайший аналог - инициализаторы объектов, но они работают только при создании новых экземпляров.
Инструкция With…End With в VB позволяет выполнить серию операторов, которые многократно обращаются к одному объекту. Благодаря этому операторы могут использовать упрощённый синтаксис для обращения к членам объекта. Например:
With car
.Make = "Mazda"
.Model = "MX5"
.Year = 1989
End With
Есть ли синтаксический аналог в C#?
Нет. Аналога не существует. Ближе всего по смыслу инициализаторы объектов, но они применяются только при создании новых экземпляров и не могут использоваться для обновления уже существующих объектов, как это делает инструкция with.
Например, при создании нового экземпляра объекта можно использовать инициализатор объекта:
var car = new Car
{
Make = "Mazda",
Model = "MX5",
Year = 1989
};
Но при обновлении объекта эквивалентного упрощённого синтаксиса нет. Придётся ссылаться на объект при каждом присваивании или вызове члена, вот так:
car.Make = "Aston Martin";
car.Model = "DBS";
car.Year = 1967;
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.