Convenções de maiúsculas e minúsculas

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.

As diretrizes neste capítulo estabelecem um método simples para usar maiúsculas e minúsculas que, quando aplicados de forma consistente, facilitam a leitura de identificadores para tipos, membros e parâmetros.

Regras de uso de maiúsculas e minúsculas para identificadores

Para diferenciar palavras em um identificador, coloque em maiúscula a primeira letra de cada palavra no identificador. Não use sublinhados para diferenciar palavras ou, nesse caso, em qualquer lugar nos identificadores. Há duas maneiras apropriadas de utilizar maiúsculas nos identificadores, dependendo do uso do identificador:

  • PascalCasing

  • camelCasing

A convenção PascalCasing, usada para todos os identificadores, exceto nomes de parâmetro, coloca em maiúscula o primeiro caractere de cada palavra (incluindo acrônimos com mais de duas letras de comprimento), conforme mostrado nos seguintes exemplos:

PropertyDescriptor HtmlTag

Uma exceção é feita para acrônimos de duas letras apenas, em que ambas as letras serão colocadas em maiúsculas, conforme mostrado no identificador a seguir:

IOStream

A convenção camelCasing, usada apenas para nomes de parâmetro, coloca em maiúsculas o primeiro caractere de cada palavra, exceto a primeira palavra, conforme mostrado nos exemplos a seguir. Como o exemplo também mostra, os acrônimos de duas letras que iniciam um identificador ficam em minúsculas.

propertyDescriptor ioStream htmlTag

✔️ USE PascalCasing para todos os nomes de membros, tipos e namespaces públicos composto de várias palavras.

✔️ USE camelCasing para nomes de parâmetro.

A tabela a seguir descreve as regras de uso de maiúsculas e minúsculas para diferentes tipos de identificadores.

Identificador Capitalização Exemplo
Namespace Pascal namespace System.Security { ... }
Tipo Pascal public class StreamReader { ... }
Interface Pascal public interface IEnumerable { ... }
Método Pascal public class Object {
public virtual string ToString();
}
Propriedade Pascal public class String {
public int Length { get; }
}
Evento Pascal public class Process {
public event EventHandler Exited;
}
Campo Pascal public class MessageQueue {
public static readonly TimeSpan
InfiniteTimeout;
}
public struct UInt32 {
public const Min = 0;
}
Valor de enumeração Pascal public enum FileMode {
Append,
...
}
Parâmetro Camel public class Convert {
public static int ToInt32(string value);
}

Maiúsculas em palavras compostas e termos comuns

A maioria dos termos compostos é tratada como palavras simples para fins de uso de maiúsculas.

❌ NÃO USE maiúsculas em cada palavra nas chamadas palavras formadas por aglutinação e justaposição unidas sem o hífen.

Elas são formadas por mais de uma palavra escritas como uma única palavra sem separação ou uso de hífen, como “passatempo”. Para fins de diretrizes quanto ao uso de maiúsculas e minúsculas, trate essas palavras como uma única palavra. Use um dicionário atual para determinar se uma palavra é escrita por aglutinação/justaposição unidas e sem hífen.

Pascal Camel Not
BitFlag bitFlag Bitflag
Callback callback CallBack
Canceled canceled Cancelled
DoNot doNot Don't
Email email EMail
Endpoint endpoint EndPoint
FileName fileName Filename
Gridline gridline GridLine
Hashtable hashtable HashTable
Id id ID
Indexes indexes Indices
LogOff logOff LogOut
LogOn logOn LogIn
Metadata metadata MetaData, metaData
Multipanel multipanel MultiPanel
Multiview multiview MultiView
Namespace namespace NameSpace
Ok ok OK
Pi pi PI
Placeholder placeholder PlaceHolder
SignIn signIn SignOn
SignOut signOut SignOff
UserName userName Username
WhiteSpace whiteSpace Whitespace
Writable writable Writeable

Diferenciação de maiúsculas e minúsculas

Idiomas que podem ser executados em CLR não precisam oferecer suporte à diferenciação de maiúsculas e minúsculas, embora alguns ofereçam. Mesmo que seu idioma dê esse suporte, outros idiomas que podem acessar sua estrutura não oferecem. Todas as APIs que são acessíveis externamente, portanto, não podem depender apenas da diferenciação de maiúsculas e minúsculas para distinguir entre dois nomes no mesmo contexto.

❌ NÃO presuma que todas as linguagens de programação façam diferenciação entre maiúsculas de minúsculas. Eles não são. Os nomes não podem se diferenciar apenas com base no uso de maiúsculas e minúsculas.

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