This article has been localized into Russian by the community.
Инициализаторы объекта
С c# 3.0 инициализация объектов и коллекций стала намного проще. Давайте рассмотрим простой класс автомобилей, где мы используем автоматические свойства, описанные в предыдущей главе:
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
}
Сейчас, в C# 2.0, мы должны были бы написать кусок кода, как этот, чтобы создать экземпляр автомобиля и установить его свойства:
Car car = new Car();
car.Name = "Chevrolet Corvette";
car.Color = Color.Yellow;
Это просто отлично, но с C# 3.0 это можно сделать немного более чисто, благодаря новому синтаксису инициализатора объектов:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow };
Как вы можете видеть, мы используем набор фигурных скобок после создания экземпляра нового объекта Car, и в них мы имеем доступ ко всем открытым свойствам класса Car. Это также экономит немного ввода, и немного места. Лучшая часть заключается в том, что она также может быть вложенной. Рассмотрим следующий пример, где мы добавляем новое сложное свойство в класс Car, например:
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
public CarManufacturer Manufacturer { get; set; }
}
class CarManufacturer
{
public string Name { get; set; }
public string Country { get; set; }
}
Для инициализации нового car в C# 2.0 мы должны были бы сделать что-то вроде этого:
Car car = new Car();
car.Name = "Corvette";
car.Color = Color.Yellow;
car.Manufacturer = new CarManufacturer();
car.Manufacturer.Name = "Chevrolet";
car.Manufacturer.Country = "USA";
С C# 3.0 мы можем вместо этого сделать это так:
Car car = new Car {
Name = "Chevrolet Corvette",
Color = Color.Yellow,
Manufacturer = new CarManufacturer {
Name = "Chevrolet",
Country = "USA"
}
};
Или в случае, если вас не очень заботит читабельность, так:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow, Manufacturer = new CarManufacturer { Name = "Chevrolet", Country = "USA" } };
Так же, как с автоматическими свойствами, это синтаксический сахар - вы можете использовать его, или просто придерживаться старого, старомодного способа делать дела.