Classes vs Struct
-
Classes vs Struct
-
“Regras”
- CONSIDERE definir uma estrutura em vez de uma classe se as instâncias do tipo forem pequenas e geralmente de curta duração ou forem incorporadas a outros objetos.
- Quando o objeto tiver uma vida curta
- EVITE definir uma estrutura, a menos que o tipo tenha todas as seguintes características:
- Ele representa logicamente um único valor, semelhante aos tipos primitivos (
int,double, etc.). - Tem um tamanho de instância inferior a 16 bytes.
- É imutável.
- Não terá que ser encaixotado com freqüência.
- Ele representa logicamente um único valor, semelhante aos tipos primitivos (
- CONSIDERE definir uma estrutura em vez de uma classe se as instâncias do tipo forem pequenas e geralmente de curta duração ou forem incorporadas a outros objetos.
-
Structs não podem herdar
-
Não possui construtor vazio. Você é obrigado a ter construtores com parâmetros
-
No C# 11, temos uma nova propriedade ao declarar uma struct chamada
default
- Como temos que criar um construtor preenchido do struct por obrigação, o default inseri os valores padrão de cada tipo, ou seja, se for um objeto manda nulo e se for uma string manda vazio