Permite declarar tipos que contém vários valores, identificados por um nome. Semelhante a struct do C. Exemplo:
1 2 3 4 5 6 7 8 9 | public struct Point { public int x, y; public Point(int pl, int p2) { x = pl; y = p2; } } |
As structs possuem algumas características em comum com as classes:
- Podem ter métodos.
- Podem ter construtores.
Entretanto, existem diferenças em relação às classes:
- Elas são tipos por valor enquanto classes são tipos por referência
- Não podemos declarar um construtor que não aceite argumentos.
- Podemos atribuir à variável “this”.
- Não suportam herança; elas são implicitamente “sealed”.
As structs fornecem uma alternativa mais “leve e barata” às classes, onde o custo do uso das classes (alocação dinâmica de memória, métodos virtuais e uso de ponteiros) seria muito caro. Por exemplo, um ponto (coordenada X, Y).