This article has been localized into Dutch by the community.
Constructors en destructors
Constructors zijn speciale methoden die gebruikt worden bij het instantiëren van een klasse. Een constructor kan nooit iets retourneren, daarom moet je er ook geen retourtype voor definiëren. Een normale methode wordt als volgt gedefinieerd:
public string Describe()
Een constructor kan je als volgt definiëren:
public Car()
In ons voorbeeld voor dit hoofdstuk hebben we een Car klasse met een constructor die een string aanvaardt als argument. Een constructor kan ook overladen worden, dit wil zeggen dat we meerdere constructors kunnen hebben met dezelfde naam maar met verschillende parameters. Hier een voorbeeld:
public Car()
{
}
public Car(string color)
{
this.color = color;
}
Een constructor kan andere constructors aanroepen, wat in sommige situaties handig kan zijn. Hier een voorbeeld:
public Car()
{
Console.WriteLine("Constructor with no parameters called!");
}
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
Als je deze code uitvoert zal je zien dat de constructor zonder parameters eerste aangeroepen wordt. We kunnen dit gebruiken om objecten voor de klasse in de standaard constructor te instantiëren. Die kan je dan aanroepen vanuit andere constructors van deze klasse. Als de constructor die je wilt aanroepen parameters aanvaard kan je deze ook meegeven. Hier een simpel voorbeeld:
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
public Car(string param1, string param2) : this(param1)
{
}
Als je de constructor aanroept die 2 parameters ontvangt zal de eerste parameter gebruikt worden om de constructor aan te roepen die 1 parameter ontvangt.
Destructors
C# maakt gebruik van garbage collection (dit houdt in dat het framework objecten die niet langer in gebruik zijn automatisch zal vrijgeven). Soms moet je dat echter zelf handmatig doen. Een destructor is een methode die aangeroepen wordt wanneer een object wordt vrijgeven, deze kan je gebruiken om de resources die het object gebruikt vrij te geven. Destructors zijn er niet veel anders uit dan andere methoden in C#. Hier zie je een voorbeeld van een een destructor voor onze Car klasse:
~Car()
{
Console.WriteLine("Out..");
}
Van zodra het object verzameld wordt door de garbage collector wordt deze methode aangeroepen.