Escolhendo entre estruturas e classes
Classes são tipos de referência e estruturas são tipos de valor. Tipos de referência são alocados na heap e gerenciamento de memória é manipulado pelo coletor de lixo. Tipos de valor são alocados na pilha ou in-line e são desalocados quando eles estiverem fora do escopo. Em geral, os tipos de valor são mais baratos alocar e desalocar. No entanto, se eles são usados em cenários que exigem uma quantidade significativa de conversão boxing e conversão conversão unboxing, eles executar mal em relação aos tipos de referência. Para obter mais informações, consulte Boxing e unboxing (C# Guia de programação).
Para obter informações adicionais sobre os tipos de referência e tipos de valor, consulte o Visão Geral do CTS (Common Type System).
Considere a possibilidade de definir uma estrutura em vez de uma classe se ocorrências do tipo forem pequenas e normalmente curta duração ou comumente incorporadas em outros objetos.
Não defina uma estrutura, a menos que tenha o tipo de todas as seguintes características:
Logicamente, ele representa um único valor, semelhante a tipos primitivos (inteiro, duplo e assim por diante).
Ele tem um dimensionar de instância menores que 16 bytes.
É imutável.
Ele não terá que 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 ao seguir essa diretriz negativamente pode afetar o desempenho.
Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.
Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.
Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.
Consulte também
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe