Na programação orientada a objetos em C#, os construtores e destrutores são métodos especiais que são executados automaticamente quando um objeto é criado e destruído. Eles são essenciais para a inicialização e limpeza de recursos de objeto.

Construtores

Em C#, um construtor é um método especial com o mesmo nome da classe. Ele é chamado automaticamente quando um objeto é criado. O construtor não tem um tipo de retorno, nem mesmo void. Isso o distingue dos outros métodos. O construtor é usado para inicializar os campos de dados do objeto e executar qualquer outra configuração necessária.

public class Game
{
    public string name;
    public Game(string name)
    {
        this.name = name;
    }
}

Neste exemplo, a classe Game tem um construtor que aceita um parâmetro de string. Quando um objeto Game é criado, o construtor é chamado com o valor do nome do jogo.

Game game = new Game("Super Mario");

Aqui, "Super Mario" é passado para o construtor da classe Game, e o campo name do objeto game é inicializado com esse valor.

Se não definirmos um construtor para uma classe, o compilador C# criará automaticamente um construtor padrão sem parâmetros para nós. Este construtor padrão inicializará todos os campos do objeto com seus valores padrão.

Destrutores

Em C#, um destrutor é um método especial que é chamado automaticamente quando um objeto é destruído. O destrutor tem o mesmo nome que a classe, precedido por um til (~). O destrutor não pode ter parâmetros nem tipo de retorno.

public class Game
{
    ~Game()
    {
        // código para limpar recursos
    }
}

Neste exemplo, a classe Game tem um destrutor. O código dentro do destrutor será executado quando o objeto Game for destruído.

Os destrutores são usados para liberar recursos não gerenciados que o objeto pode ter adquirido durante sua vida. Recursos não gerenciados são recursos que o coletor de lixo .NET não pode limpar automaticamente, como identificadores de arquivo, conexões de banco de dados ou buffers de memória não gerenciados.

Em C#, não precisamos (e não podemos) chamar explicitamente um destrutor. O coletor de lixo .NET chama o destrutor automaticamente quando não há mais referências ao objeto. No entanto, não podemos prever quando o coletor de lixo executará a coleta de lixo, portanto, não podemos prever quando o destrutor será chamado.

Se precisarmos liberar recursos não gerenciados imediatamente, podemos implementar o método Dispose da interface IDisposable. Podemos chamar Dispose explicitamente quando terminamos de usar o objeto. Dentro do método Dispose, devemos liberar todos os recursos não gerenciados e chamar GC.SuppressFinalize(this) para informar ao coletor de lixo que ele não precisa chamar o destrutor.

Em resumo, os construtores e destrutores em C# são métodos especiais que são chamados automaticamente quando um objeto é criado e destruído. Eles são usados para inicializar e limpar recursos de objeto. Embora o coletor de lixo .NET lide com a maioria dos detalhes de gerenciamento de memória para nós, ainda precisamos entender como e quando usar construtores e destrutores para gerenciar recursos de maneira eficaz.

Agora responda o exercício sobre o conteúdo:

Qual é a função dos construtores e destrutores na programação orientada a objetos em C#?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Orientação a Objetos em C#: Métodos e Propriedades

Próxima página do Ebook Gratuito:

24Orientação a Objetos em C#: Métodos e Propriedades

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto