Partilhar via


Nomes de classes, interfaces e Structs,

Em geral, os nomes de tipo devem ser frases substantivo, onde o substantivo é representada pelo tipo de entidade. Por exemplo, Button, Stack, e File cada ter nomes que identificam a entidade representada por tipo. Escolha nomes que identificam a entidade da perspectiva do desenvolvedor; nomes devem refletir os cenários de uso.

As diretrizes a seguir aplicam-se a selecionar os nomes de tipo.

Nomes de classes, interfaces e tipos de valor com substantivos, frases de substantivo ou adjetivas ocasionalmente frases, usando Pascal casing.

Não dê nomes de classe um prefixo (como, por exemplo, a letra C).

Interfaces, que devem começar com a letra I, são a exceção a essa regra.

Considere a possibilidade de encerrar o nome de classes derivadas com o nome da classe base.

Por exemplo, os tipos de estrutura que herdam Stream final em Streame tipos que herdam Exception final em Exception.

Prefixo dos nomes de interface com a letra I para indicar que o tipo é uma interface.

Garantir que a definição de um par de classe/interface onde a classe é uma implementação padrão da interface, os nomes só diferem a letra que i prefixo no nome da interface.

Por exemplo, o Framework fornece a IAsyncResult interface e o AsyncResult classe.

Nomes dos parâmetros de tipo genérico

Os genéricos são um novo recurso principal da.NET Framework versão 2.0. A tampa diretrizes seguintes, selecionando os nomes corretos para os parâmetros de tipo genérico.

Nomeie os parâmetros de tipo genérico com nomes descritivos, a menos que um nome de uma letra é totalmente auto-explicativo e um nome descritivo não adicionaria valor.

IDictionary<TKey, TValue>é um exemplo de uma interface que se segue essa diretriz.

Considere usar a letra t como o nome do parâmetro de tipo para tipos com um parâmetro de tipo de letra único.

Prefixo de nomes de parâmetro de tipo descritivo com a letra t.

Considere indicando restrições colocadas em um parâmetro de tipo, o nome do parâmetro. Por exemplo, um parâmetro restringido a ISession pode ser chamado TSession.

Nomes dos tipos comuns

As diretrizes a seguir fornecem as convenções de nomenclatura que ajudam os desenvolvedores reconhecem o cenário de uso pretendido para determinadas classes. Onde a diretriz refere-se aos tipos que herdam a algum outro tipo, isso se aplica a todos os herdeiros, não apenas os tipos que herdam diretamente. Por exemplo, a diretriz "adicionar o sufixo Exception para tipos que herdam da Exception." significa que qualquer tipo que tem Exception na sua herança hierarquia deve ter um nome que termina em Exception.

Cada uma dessas diretrizes também serve para reservar o sufixo especificado; a menos que seu tipo atende os critérios estabelecidos pela diretriz, ele não deve usar o sufixo. Por exemplo, se o seu tipo direta ou indiretamente herda de Exception, seu nome não deve terminar em Exception.

Adicione o atributo de sufixo para classes de atributo personalizado.

ObsoleteAttributee AttributeUsageAttribute são nomes de tipo que siga essa diretriz.

Adicione o sufixo EventHandler para nomes de tipos que são usados nos eventos (como tipos de retorno de um evento de C#).

AssemblyLoadEventHandleré um nome de delegado segue essa diretriz.

Adicione o retorno de chamada de sufixo do nome de um delegado que não é um manipulador de eventos.

Não adicione o sufixo de delegar a um delegado.

Adicione o sufixo EventArgs às classes que estendem o System. EventArgs.

Não derivam da classe System. Enum; Use a palavra-chave suportada pela sua linguagem, em vez disso. Por exemplo, em C#, use a palavra-chave enum.

Adicione o sufixo de exceção para tipos que herdam de System. Exception.

Adicione o sufixo de dicionário para tipos que implementam System.Collections.IDictionary ou System.Collections.Generic.IDictionary < TKey, TValue >. Observe que o System.Collections.IDictionary é um tipo específico da coleção, mas essa diretriz tem precedência sobre a diretriz de coleções mais geral abaixo.

Adicionar o sufixo de coleção para tipos que implementam System.Collections.IEnumerable, System.Collections.ICollection, System.Collections.IList, System.Collections.Generic.IEnumerable, <T>, System.Collections.Generic.ICollection, <T> ou System.Collections.Generic.IList <T>.

Adicione o sufixo de fluxo para tipos que herdam System.IO.Stream.

Adicione o sufixo de permissão para tipos que herdam System.Security.CodeAccessPermission ou implementam System.Security.IPermission.

Nomes de enumerações

Não use um prefixo em nomes de valor de enumeração. Por exemplo, não use um prefixo como, por exemplo, ad para enumerações do ADO ou rtf para enumerações de rich text e assim por diante.

Isso também significa que você não deve incluir o nome do tipo de enumeração nos nomes de valor de enumeração. O exemplo de código a seguir demonstra os valores da enumeração de nomeação incorretamente.

Public Enum Teams

    TeamsAlpha
    TeamsBeta
    TeamsDelta

End Enum
public  enum Teams
{
    TeamsAlpha,
    TeamsBeta,
    TeamsDelta
}

Não use Enum como um sufixo de tipos de enumeração.

Não adicione sinalizadores como sufixo nomes das enumerações de sinalizadores.

Use um nome no singular para uma enumeração, a menos que seus valores são campos de bits.

Use um nome no plural para enumerações com campos de bit como valores, também chamados de sinalizadores de enumerações.

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

Diretrizes para nomes