Tipos aninhados
Um tipo aninhado é um tipo que seja membro de algum Outros tipo. Tipos aninhados devem ser rigidamente acoplados seu tipo declarativo e não pode ser útil sistema autônomo um tipo de finalidade geral. Tipos aninhados são confusos para alguns desenvolvedores e não devem ser visíveis publicamente, a menos que haja uma razão convincente para fazer isso. Em uma biblioteca bem projetada, os desenvolvedores devem raramente precisam usar tipos aninhados para instanciar objetos ou declarar variáveis.
Tipos aninhados são úteis quando o tipo declarativo usa e cria instâncias de tipo aninhado e uso do tipo aninhado não é exposto na membros públicos.
Usam tipos aninhados quando a relação entre o tipo aninhado e seu tipo externo é que é desejável semântica de acessibilidade do membro.
sistema autônomo um tipo aninhado é tratado sistema autônomo um membro do tipo declarativo, do tipo aninhado tem acesso a todos sistema autônomo outros membros o tipo declarativo.
Não não uso público tipos aninhados sistema autônomo uma construção de agrupamento lógico; use espaços para nome para esta.
Evite expostos publicamente tipos aninhados.A única exceção é quando variáveis do tipo aninhado precisam ser declarado em situações raras sistema autônomo subclassing ou outros cenários de personalização avançada.
Não use tipos aninhados, se o tipo é a probabilidade de ser consultado fora do tipo declarativo.
Declaração de variáveis e instanciação de objetos de tipos aninhados não deve ser solicitada em cenários comuns. Por exemplo, um delegado manipulador de eventos que manipula um evento definido em uma classe não deve ser aninhado na classe.
Não use tipos aninhados se precisarem ser instanciada pelo código do cliente.Se um tipo tem um construtor público, ele provavelmente não deve ser aninhado.
Idealmente, um tipo aninhado é instanciado e usado somente por seu tipo declarativo. Se um tipo aninhado tem um construtor público, isso indica que o tipo tem algum uso separado do seu tipo declarativo. Em geral, um tipo aninhado não deve executar as tarefas para tipos diferentes de seu tipo declarativo. Se um tipo tiver um objetivo maior, ele provavelmente não deve ser aninhado.
Não defina um tipo aninhado sistema autônomo um membro de uma interface.Muitas linguagens não oferecem suporte a tal uma construção.
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
Conceitos
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe