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.