TOC

This article has been localized into Czech by the community.

C# 3.0:

Inicializátory objektů

S C# 3.0 se inicializace objektů i kolekcí stala mnohem jednodušší. Vezměme v úvahu tuto jednoduchou třídu Car (Auto), kde používáme automatické vlastnosti popsané v předchozí kapitole:

class Car
{
    public string Name { get; set; }
    public Color Color { get; set; }
}

Nyní bychom v C# 2.0 museli napsat kus kódu jako tento, abychom vytvořili instanci Car (Auto) a nastavili její vlastnosti:

Car car = new Car();
car.Name = "Chevrolet Corvette";
car.Color = Color.Yellow;

To je vlastně v pořádku, ale s C# 3.0 to lze udělat trochu čistěji, díky nové syntaxi inicializátoru objektů:

Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow };

Jak vidíte, používáme sadu složených závorek po vytvoření nového objektu Car, a uvnitř nich máme přístup ke všem veřejným vlastnostem třídy Car. To ušetří trochu psaní a také trochu místa. Skvělá část je, že lze vnořovat. Vezměte v úvahu následující příklad, kde přidáme novou složenou vlastnost do třídy 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; }
}

Pro inicializaci nového auta s použitím C# 2.0 bychom museli udělat něco jako toto:

Car car = new Car();
car.Name = "Corvette";
car.Color = Color.Yellow;
car.Manufacturer = new CarManufacturer();
car.Manufacturer.Name = "Chevrolet";
car.Manufacturer.Country = "USA";

S C# 3.0 to můžeme udělat takto:

Car car = new Car { 
                Name = "Chevrolet Corvette", 
                Color = Color.Yellow, 
                Manufacturer = new CarManufacturer { 
                    Name = "Chevrolet", 
                    Country = "USA" 
                } 
            };

Nebo pokud se nezajímáte o čitelnost, takto:

Car car = new Car { Name = "Chevrolet Corvette", Color = Color.Yellow, Manufacturer = new CarManufacturer { Name = "Chevrolet", Country = "USA" } };

Stejně jako s automatickými vlastnostmi, i toto je syntaktické sladidlo - můžete jej buď použít, nebo zůstat u starého, tradičního způsobu věcí.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!