This article has been localized into Portuguese by the community.
Construtores e destrutores
Construtores são métodos especiais, usados para instanciar uma classe. Um construtor nunca pode retornar nada, e é por isso que você não precisa definir um tipo de retorno para ele. Um método normal é definido assim:
public string Describe()
Um construtor pode ser definido assim:
public Car()
Em nosso exemplo para este capítulo, temos uma classe Car, com um construtor que usa uma string como argumento. Naturalmente, um construtor também pode ser sobrecarregado, o que significa que podemos ter vários construtores, com o mesmo nome, mas parâmetros diferentes. Aqui está um exemplo:
public Car()
{
}
public Car(string color)
{
this.color = color;
}
Um construtor pode chamar outro construtor, o que pode ser útil em várias situações. Aqui está um exemplo:
public Car()
{
Console.WriteLine("Constructor with no parameters called!");
}
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
Se você executar este código, verá que o construtor sem parâmetros é chamado primeiro. Isso pode ser usado para instanciar vários objetos para a classe no construtor padrão, que pode ser chamado de outros construtores da classe. Se o construtor que você deseja chamar requer parâmetros, você também pode fazer isso. Aqui está um exemplo simples:
public Car(string color) : this()
{
this.color = color;
Console.WriteLine("Constructor with color parameter called!");
}
public Car(string param1, string param2) : this(param1)
{
}
Se você chamar o construtor que usa 2 parâmetros, o primeiro parâmetro será usado para invocar o construtor que recebe 1 parâmetro.
Destruidores
Como o C# é coletado como lixo, medindo que o framework irá liberar os objetos que você não usa mais, pode haver momentos em que você precise fazer alguma limpeza manual. Um destruidor, um método chamado quando um objeto é descartado, pode ser usado para limpar os recursos usados pelo objeto. Destrutores não se parecem muito com outros métodos em C#. Aqui está um exemplo de um destruidor para nossa classe Car:
~Car()
{
Console.WriteLine("Out..");
}
Depois que o objeto é coletado pelo coletor de lixo, esse método é chamado.