Escolhendo entre Classes e estruturas
Classes são tipos de referência e estruturas são tipos de valor. Tipos de referência são alocados na pilha e o gerenciamento de memória é tratado pelo coletor de lixo. Os tipos de valor são alocados na pilha ou in-line e são desalocados saem do escopo. Em geral, os tipos de valor são mais baratos alocar e desalocar. No entanto, se forem usados em cenários que exigem uma quantidade significativa de boxing e unboxing, eles insatisfatório em relação aos tipos de referência. Para obter mais informações, consulte Boxing e Unboxing (TRANSLATION FROM VPE FOR CSHARP guia de programação).
Para obter informações adicionais sobre os tipos de valor e tipos de referência, consulte o Common Type System.
Considere a definição de uma estrutura em vez de uma classe se instâncias do tipo são pequenos e normalmente de curta duração ou normalmente são incorporadas em outros objetos.
Não defina uma estrutura tipo tem todas as seguintes características:
Logicamente, ele representa um único valor, semelhante a tipos primitivos (inteiro, duplo e assim por diante).
Ele tem um tamanho de instância menores que 16 bytes.
É imutável.
Ele não terá de ser in a box com freqüência.
Se um ou mais dessas condições não forem atendidas, crie um tipo de referência em vez de uma estrutura. Falha em atender a essa diretriz pode afetar negativamente o desempenho.
Portions Copyright 2005 Microsoft Corporation. Todos os direitos reservados.
Portions Copyright Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre as diretrizes de design, consulte a "diretrizes de Design do Framework: Convenções, idiomas e padrões de reutilizável.Bibliotecas de rede" catálogo por Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe