C# orientado a objetos

Generics em C#

Nesta lição, você vai escrever uma classe genérica que pode ser reutilizada com vários tipos de dados mantendo a segurança de tipos.

Introdução

Generics permitem escrever classes ou métodos com um tipo ainda não definido, representado por T, e o tipo concreto é escolhido na hora de usar. Assim, você escreve o código uma vez e o usa com int, string ou qualquer outro tipo, enquanto o compilador continua verificando os tipos por completo.

A classe Box<T> guarda um valor do tipo T. Ao criar new Box<int>(42), T passa a ser int, então a propriedade Value é do tipo int, e se você tentar atribuir uma string o compilador acusa o erro na hora. A mesma classe pode ser usada como Box<string> ou Box<double> sem ser reescrita.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;

class Box<T>(T value) { public T Value { get; } = value; }

class Program
{
    static void Main()
    {
        var box = new Box<int>(42);
        Console.WriteLine(box.Value);
    }
}
Resultado da execução
42

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios