Structs e enums

Structs em C#

Uma struct (estrutura) é um tipo de valor usado para agrupar dados relacionados sob um mesmo nome. São ideais para representar objetos simples, como coordenadas, pontos ou registros de dados, e são armazenadas na pilha de memória, o que pode trazer vantagens de desempenho em certos cenários.

Como definir uma struct

A sintaxe básica para definir uma struct é:

struct Ponto
{
public int X;
public int Y;

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

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

Neste exemplo, a struct Ponto possui dois campos (X e Y), um construtor e um método para imprimir as coordenadas.

Como utilizar uma struct

Você pode criar e usar structs de duas formas:

// Utilizando o construtor
Ponto p1 = new Ponto(3, 5);
p1.Imprimir(); // Saída: Coordenadas: (3, 5)

// Inicializando os campos diretamente
Ponto p2;
p2.X = 10;
p2.Y = 20;
p2.Imprimir(); // Saída: Coordenadas: (10, 20)

Se não usar o construtor, é necessário inicializar todos os campos antes do uso.

Enums em C#

Um enum (enumeração) é um tipo especial que permite definir um conjunto de constantes nomeadas, facilitando o uso de valores fixos no código e melhorando a legibilidade.

Como definir um enum

A sintaxe básica é:

enum DiaDaSemana
{
Domingo,
Segunda,
Terca,
Quarta,
Quinta,
Sexta,
Sabado
}

Como utilizar um enum

DiaDaSemana hoje = DiaDaSemana.Quarta;

if (hoje == DiaDaSemana.Quarta)
{
Console.WriteLine("Hoje é quarta-feira!");
}

Você pode também obter o valor numérico associado:

int valor = (int)DiaDaSemana.Quarta; // valor será 3

Resumo das diferenças principais

StructsEnums
Agrupam dadosDefinem conjuntos de valores
Tipo de valorTipo especial de valor
Podem ter métodosApenas constantes nomeadas