FC ConcursosFC Concursos

Questão FC373314

Considere o programa em C# abaixo. Ao ser executado em condições ideais, o programa imprimirá:

Linguagens de Programação

FCC · 2022

Considere o programa em C# abaixo.

Ao ser executado em condições ideais, o programa imprimirá:

  1. null
  2. Dentro da ClasseTeste

    Finalizando

  3. Dentro da ClasseTeste
  4. Dentro da ClasseTeste

    null

  5. Dentro da ClasseTeste

    Finalizando

    null

Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A saída é exatamente:
Dentro da ClasseTeste
Finalizando, nessa ordem.

Ao executar new Teste() o código chama o construtor da classe, que escreve Dentro da ClasseTeste no console imediatamente.

O segundo texto vem do destrutor (finalizer, declarado como ~Teste()), que escreve Finalizando. Em C# o destrutor é invocado pelo coletor de lixo, não diretamente pelo programador.

Como o programa atribui a referência a null e em seguida chama GC.Collect() e GC.WaitForPendingFinalizers(), o finalizador é forçado a rodar antes do término, garantindo a impressão da segunda linha. Sem essas chamadas, a execução do destrutor não seria garantida de forma determinística.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo