This article has been localized into Portuguese by the community.
Inicializadores de objetos
Com o C# 3.0, a inicialização de objetos e coleções ficou muito mais fácil. Considere esta simples classe Car, onde usamos as propriedades automáticas descritas em um capítulo anterior:
class Car
{
public string Name { get; set; }
public Color Color { get; set; }
}
Agora, no C # 2.0, teríamos que escrever um código como este para criar uma instância Car e definir suas propriedades:
Car car = new Car();
car.Name = "Chevrolet Corvette";
car.Color = Color.Yellow;
Está tudo bem, mas com o C # 3.0, pode ser feito de forma mais limpa, graças à nova sintaxe do inicializador de objeto:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow };
Como você pode ver, usamos um conjunto de chaves depois de instanciar um novo objeto Car e, dentro delas, temos acesso a todas as propriedades públicas da classe Car. Isso economiza um pouco de digitação e um pouco de espaço também. A parte legal é que ela pode ser aninhada também. Considere o exemplo a seguir, onde adicionamos uma nova propriedade complexa à classe Car, desta forma:
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; }
}
Para inicializar um carro novo com o C # 2.0, teríamos que fazer algo assim:
Car car = new Car();
car.Name = "Corvette";
car.Color = Color.Yellow;
car.Manufacturer = new CarManufacturer();
car.Manufacturer.Name = "Chevrolet";
car.Manufacturer.Country = "USA";
Com o C # 3.0, podemos fazer assim:
Car car = new Car {
Name = "Chevrolet Corvette",
Color = Color.Yellow,
Manufacturer = new CarManufacturer {
Name = "Chevrolet",
Country = "USA"
}
};
Ou caso você não esteja muito preocupado com a legibilidade, assim:
Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow, Manufacturer = new CarManufacturer { Name = "Chevrolet", Country = "USA" } };
Assim como com as propriedades automáticas, isso é um açúcar sintático - você pode usá-lo ou simplesmente ficar com a maneira antiga de fazer as coisas.