Ir para o conteúdo

Struct

É, em sua essência, um conceito da linguagem C# para a criação de Tipos de Valor (Value Types).

Embora a ideia de uma "estrutura" para agrupar dados seja um conceito de programação geral (presente em linguagens mais antigas como o C, que não é orientada a objetos), a forma como o struct funciona em C# está intimamente ligada ao seu sistema de tipos e gerenciamento de memória.

Diferente de interface (que é um pilar da Abstração em POO), a principal razão de existir de um struct em C# é performance e semântica de valor:

  • Tipo de Valor: Uma struct é um tipo de valor, o que significa que é geralmente armazenada na Stack (memória rápida) e copiada quando atribuída a outra variável.
  • Uso Principal: É ideal para pequenas estruturas de dados onde o valor em si é mais importante que a identidade do objeto (ex: um ponto 2D, uma cor RGB).
  • Limitações de POO: Structs não suportam herança, um dos pilares fundamentais da POO. Elas podem implementar interfaces, o que lhes permite participar de um design orientado a objetos, mas não são o principal veículo para isso.

RESUMO

Enquanto uma class é a ferramenta principal para modelar o comportamento e a identidade de objetos no paradigma POO, uma struct é uma ferramenta da linguagem C# para criar tipos de dados leves e eficientes, com semântica de valor.