TOC

This article has been localized into Czech by the community.

Třídy:

Konstruktory a destruktory

Konstruktory jsou speciální metody používané při vytváření instancí třídy. Konstruktor nemůže nikdy nic vrátit, a proto nemusíte definovat návratový typ. Normální metoda je definována takto:

public string Describe()

Konstruktor může být definován takto:

public Car()

V našem příkladu pro tuto kapitolu máme třídu Car s konstruktorem, který má argument jako řetězec. Samozřejmě, že konstruktor může být přetížen, což znamená, že můžeme mít několik konstruktorů se stejným názvem, ale s různými parametry. Zde je příklad:

public Car()
{

}

public Car(string color)
{
    this.color = color;
}

Konstruktor může zavolat dalšího konstruktora, který může přijít vhod v několika situacích. Zde je příklad:

public Car()
{
    Console.WriteLine("Constructor with no parameters called!");
}

public Car(string color) : this()
{
    this.color = color;
    Console.WriteLine("Constructor with color parameter called!");
}

Pokud spustíte tento kód, uvidíte, že konstruktor bez parametrů se vykoná dříve. Toto může být využito pro vytvoření instance objektů pro třídu v základním konstruktoru, které mohou být volány z ostatních konstruktorů třídy. Pokud konstruktor, který si přejete zavolat, obsahuje parametry, můžete to udělat stejně. Zde je jednoduchý příklad:

public Car(string color) : this()
{
    this.color = color;
    Console.WriteLine("Constructor with color parameter called!");
}

public Car(string param1, string param2) : this(param1)
{

}

Pokud zavoláte konstruktoru, který má 2 parametry, bude první parametr použit pro vyvolání konstruktoru, který má jeden parametr.

Destruktory

Vzhledem k tomu, že C# používá správu paměti prostřednictvím garbage collectoru (sběrače odpadků), což znamená, že framework uvolňuje objekty, které již nejsou používány, mohou nastat případy, kdy je třeba provést nějaký ruční úklid. Destruktor, metoda volaná jednou, když je objekt zlikvidován, může býti použita k vyčištění prostředků používaných daným objektem. Destruktory v C# nevypadají příliš podobně jako jiné metody. Zde je příklad destruktoru pro naši třídu Car:

~Car() 
{
    Console.WriteLine("Out..");
}

Jakmile je objekt sesbírán garbage collectorem, zavolá se tato metoda.


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!