Convenções de Capitalização
Nota
Este conteúdo é reimpresso com permissão da Pearson Education, Inc., a partir 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 revisto na terceira edição. Algumas das informações nesta página podem estar desatualizadas.
As diretrizes deste capítulo estabelecem um método simples para usar casos que, quando aplicados de forma consistente, tornam os identificadores para tipos, membros e parâmetros fáceis de ler.
Regras de capitalização 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 para esse assunto, em qualquer lugar nos identificadores. Há duas maneiras apropriadas de capitalizar identificadores, dependendo do uso do identificador:
PascalCasing
cameloCasing
A convenção PascalCasing, usada para todos os identificadores, exceto nomes de parâmetros, coloca em maiúsculas o primeiro caractere de cada palavra (incluindo siglas com mais de duas letras de comprimento), conforme mostrado nos exemplos a seguir:
PropertyDescriptor
HtmlTag
Um caso especial é feito para acrônimos de duas letras em que ambas as letras são maiúsculas, como mostrado no seguinte identificador:
IOStream
A convenção camelCasing, usada apenas para nomes de parâmetros, coloca em maiúsculas o primeiro caractere de cada palavra, exceto a primeira palavra, como mostrado nos exemplos a seguir. Como o exemplo também mostra, as siglas de duas letras que iniciam um identificador com caixa de camelo são ambas minúsculas.
propertyDescriptor
ioStream
htmlTag
✔️ DO use PascalCasing para todos os nomes de membros, tipos e namespaces públicos que consistem em várias palavras.
✔️ DO use camelCasing para nomes de parâmetros.
A tabela a seguir descreve as regras de capitalização para diferentes tipos de identificadores.
Identificador | Maiúsculas e Minúsculas | Exemplo |
---|---|---|
Espaço de Nomes | Pascal | namespace System.Security { ... } |
Type | Pascal | public class StreamReader { ... } |
Interface | Pascal | public interface IEnumerable { ... } |
Método | Pascal | public class Object { public virtual string ToString(); } |
Property | 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); } |
Capitalização de palavras compostas e termos comuns
A maioria dos termos compostos são tratados como palavras únicas para fins de capitalização.
❌ NÃO coloque cada palavra em maiúsculas nas chamadas palavras compostas de forma fechada.
Estas são palavras compostas escritas como uma única palavra, como ponto final. Para fins de diretrizes de invólucro, trate uma palavra composta de forma fechada como uma única palavra. Use um dicionário atual para determinar se uma palavra composta é escrita em formato fechado.
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 |
Sensibilidade a maiúsculas e minú
Os idiomas que podem ser executados no CLR não são necessários para oferecer suporte à diferenciação de maiúsculas e minúsculas, embora alguns o façam. Mesmo que o seu idioma o suporte, outros idiomas que possam aceder à sua estrutura não o suportam. Portanto, quaisquer APIs acessíveis externamente não podem depender apenas de maiúsculas e minúsculas para distinguir entre dois nomes no mesmo contexto.
❌ NÃO assuma que todas as linguagens de programação diferenciam maiúsculas de minúsculas. Tal não acontece. Os nomes não podem diferir apenas de caso para caso.
© Partes 2005, 2009 Microsoft Corporation. Todos os direitos reservados.
Reimpresso com permissão da Pearson Education, Inc., de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition por Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 por Addison-Wesley Professional como parte da Microsoft Windows Development Series.