top of page

O que é uma struct no C#?

No C#, existem dois tipos principais para armazenar dados: classes (class) e estruturas (struct). Ambas permitem criar objetos, mas funcionam de maneiras diferentes.


Se você já usou uma class, pode pensar na struct como uma alternativa mais leve, usada para armazenar pequenos conjuntos de informações sem precisar do Garbage Collector para gerenciar a memória.


O que é e para que serve uma struct?

Uma struct é um tipo de dado que guarda valores diretamente na memória, sem precisar criar objetos no heap. Isso significa que ela é mais rápida e consome menos recursos quando precisamos armazenar pequenas quantidades de dados.


💡 Quando usar struct?

✔ Quando os dados são pequenos e não precisam mudar muito.

✔ Quando queremos algo mais rápido que não dependa do Garbage Collector.

✔ Para representar valores como coordenadas, datas ou cores.


Exemplo Simples

Imagine que precisamos armazenar pontos em um plano cartesiano (X, Y). Podemos fazer isso com uma struct:


struct Ponto
{
    public int X;
    public int Y;

    public Ponto(int x, int y)
    {
        X = x;
        Y = y;
    }

    public void Exibir()
    {
        Console.WriteLine($"Ponto: ({X}, {Y})");
    }
}

Podemos usar essa struct dessa forma:

Ponto p = new Ponto(3, 5);
p.Exibir(); // Saída: Ponto: (3, 5)

Note que ela é muito similar a uma classe, mas tem suas diferenças.


Qual a Diferença entre struct e class?

Característica

struct

class

Armazenamento

Na pilha (stack)

No heap

Gerenciamento de Memória

Automático, sem Garbage Collector

Depende do Garbage Collector

Performance

Mais rápida 🚀

Pode ser mais lenta 🐢

Quando usar?

Pequenos conjuntos de dados, como pontos, cores, datas

Objetos maiores e mais complexos


Vantagens da struct

Desempenho: Como os dados ficam na pilha, acessar uma struct é muito rápido.

Menos uso de memória: Ideal para pequenos objetos que precisam ser criados e descartados rapidamente.

Menos impacto no Garbage Collector: O C# não precisa ficar limpando structs na memória, pois elas são descartadas automaticamente.


Cuidados ao Usar struct

Evite usar struct para objetos grandes: Como struct copia os valores ao invés de passar referências, objetos muito grandes podem deixar o código mais lento.

Sem herança: Diferente de class, struct não pode herdar de outra estrutura ou classe (exceto interface).

Os valores sempre são copiados: Se passar uma struct como parâmetro, será criada uma cópia dela. Isso pode ser ruim se os dados forem grandes.


Quando Usar struct no C#?

✅ Para representar dados pequenos e imutáveis, como coordenadas, cores, valores de tempo, etc.

✅ Quando o desempenho é uma preocupação, pois a struct evita sobrecarga no Garbage Collector.

✅ Quando queremos garantir que os valores não serão modificados por referência.


 
 

Posts recentes

Ver tudo
bottom of page