Nomes de membros de tipo

Observação

Este conteúdo é reimpresso com permissão da Pearson Education, Inc. de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Essa edição foi publicada em 2008 e, desde então, o livro foi totalmente revisado na terceira edição. Algumas das informações nesta página podem estar desatualizadas.

Tipos são compostos de membros: métodos, propriedades, eventos, construtores e campos. As seções a seguir descrevem as diretrizes de nomenclatura de membros de tipo.

Nomes de métodos

Como os métodos são os meios para executar uma ação, as diretrizes de design exigem que os nomes de métodos sejam verbos ou frases verbais. Seguir essa diretriz também serve para distinguir os nomes de métodos de nomes de propriedades e tipos, que são substantivos ou frases adjetivas.

✔️ NOMEIE os métodos que sejam verbos ou frases verbais.

public class String {
    public int CompareTo(...);
    public string[] Split(...);
    public string Trim();
}

Nomes de propriedades

Diferentemente de outros membros, as propriedades devem ser nomeadas com uma frase substantivada ou um adjetivo. Isso porque uma propriedade se refere a dados, e o nome da propriedade reflete isso. PascalCasing sempre é usado para nomes de propriedade.

✔️ NOMEIE as propriedades usando um substantivo, uma frase nominal ou um adjetivo.

❌NÃO tenha propriedades que correspondam ao nome dos métodos "Get", como no exemplo a seguir:

public string TextWriter { get {...} set {...} } public string GetTextWriter(int value) { ... }

Esse padrão geralmente indica que a propriedade deveria realmente ser um método.

✔️ NOMEIE as propriedades de coleção com uma frase no plural que descreva os itens na coleção em vez de usar uma frase no singular seguida por "List" ou "Collection".

✔️ NOMEIE as propriedades boolianas com uma frase afirmativa (CanSeek em vez de CantSeek). Opcionalmente, você também pode prefixar as propriedades boolianas com "Is", "Can" ou "Has", mas somente quando isso adicionar valor.

✔️ CONSIDERE nomear uma propriedade com o mesmo nome de seu tipo.

Por exemplo, a seguinte propriedade obtém e define corretamente um valor de enumeração denominado Color, portanto, a propriedade é chamada Color:

public enum Color {...}
public class Control {
    public Color Color { get {...} set {...} }
}

Nomes de eventos

Eventos sempre fazem referência a uma ação, seja uma ação que está acontecendo ou que já ocorreu. Portanto, assim como acontece com os métodos, os eventos são nomeados com verbos e o tempo verbal é usado para indicar o horário em que o evento é acionado.

✔️ NOMEIE os eventos com um verbo ou uma frase verbal.

Os exemplos incluem Clicked, Painting, DroppedDown, etc.

✔️ NOMEIE os eventos com um conceito de antes e depois, usando os tempos verbais presente e pretérito.

Por exemplo, um evento de fechamento gerado antes de uma janela ser fechada seria chamado de Closing, e um gerado após a janela ser fechada seria chamado de Closed.

❌NÃO use os prefixos ou sufixos "Before" ou "After" para indicar eventos anteriores e posteriores. Use os tempos verbais Pretérito e Presente conforme descrito.

✔️ NOMEIE os manipuladores de eventos (delegados usados como tipos de eventos) com o sufixo "EventHandler", conforme mostrado no exemplo a seguir:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✔️ USE dois parâmetros nomeados como sender e e nos manipuladores de eventos.

O parâmetro do remetente representa o objeto que acionou o evento. O parâmetro do remetente normalmente é do tipo object, mesmo se for possível empregar um tipo mais específico.

✔️ NOMEIE as classes de argumento de evento com o sufixo "EventArgs".

Nomes de campos

As diretrizes de nomenclatura de campo se aplicam a campos públicos e protegidos estáticos. Campos particulares e internos não são cobertos pelas diretrizes, e campos de instância pública ou protegida não são permitidos pelas diretrizes de design de membro.

✔️ USE PascalCasing nos nomes de campos.

✔️ NOMEIE os campos usando um substantivo, uma frase nominal ou um adjetivo.

❌NÃO use um prefixo para nomes de campos.

Por exemplo, não use "g_" ou "s_" para indicar campos estáticos.

Portions © 2005, 2009 Microsoft Corporation. Todos os direitos reservados.

Reimpresso com permissão da Pearson Education, Inc. das Diretrizes de Design do Framework: convenções, linguagens e padrões para bibliotecas do .NET reutilizável, 2ª edição por Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 por Addison-Wesley Professional como parte da série de desenvolvimento do Microsoft Windows.

Confira também