Você está na página 1de 3

Regras e Convenes de Nomenclatura

para .Net
Categorias: ASP.Net , C# , Cdigo , Desenvolvimento , Dicas , Javascript , Nomenclatura , Padres
, Pattern , Tutoriais

Saiba como levar em considerao os padres de desenvolvimento da Microsoft


para C#.

uma boa ideia considerar a boa prtica para desenvolver e dar os nomes certos aos bois, assim
como feito no universo Java (mas com algumas diferenas). O C# muito parecido com o
JavaScript, a exceo a nomenclatura do mtodo, que no JavaScript camelCase e no C#
PascalCase. Mas em todos os casos usa-se verbo no infinitivo.
Aqui voc ver o padro Microsoft com regras e convenes de nomenclatura para C#, um
apanhado geral que fiz pela Internet, confira...
Documentao
Cada classe e mtodo deve(ria) conter documentao XML ( s digitar /// acima de cada classe
ou mtodo e preencher os campos corretamente). Tambm interessante incluir essa documentao
em propriedades get/set e enums. Essa prtica fundamental para o entendimento do cdigo
por parte de outro analista. Ex.:
/// <summary>
/// Descrio aqui.
/// </summary>
/// <param name="nomeParametro">Descrio do parmetro.</param>
/// <returns>Descrio do retorno.</returns>
Classes
As classes devem comear com letra maiscula e para cada palavra, a primeira letra tambm deve
ser maiscula. Se o nome da Classe Maisculo, o nome do arquivo desta mesma classe TAMBM
deve ser Maisculo, mesmo que este seja apenas uma tela.
public class Empresa { }
public class HistoricoDeCompra { }
public class ItemDaVenda { }
Interfaces
As interfaces devem comear com a letra I maiscula e para cada palavra, a primeira letra tambm
deve ser maiscula.
public class IPedidoService { }
public class IHistoricoDaCompra { }

public class IItemDoPedido { }


Campos
Os campos para utilizao interna devem comear com letra minscula, e para cada palavra, a
primeira letra deve ser maiscula. Como geralmente so utilizados por uma propriedade, deve se
iniciar com underscore _.
private string _cliente;
private DateTime _dataDeNascimento;
private int _codProduto;
Propriedades
As propriedades devem comear com letra maiscula e para cada palavra, a primeira letra tambm
deve ser maiscula. O mesmo critrio serve para o nome dos componentes (TextBox = TxtNome,
por exemplo).
public string Cliente { get; set; }
public DateTime DataDeNascimento { get; set; }
public int CodProduto { get; set; }
Mtodos
Os mtodos devem comear com letra maiscula e para cada palavra, a primeira letra tambm deve
ser maiscula. Verbo no infinitivo!
public string GetName()
public bool Verificar()
public void Executar()
Parmetros
Os parmetros devem comear com letra minscula e para cada palavra, a primeira letra deve ser
maiscula.
public void SetName(string nome)
public bool Verificar(int codCliente)
public void Executar(DateTime dtExecucao)
Variveis
As variveis devem comear com letra minscula e para cada palavra, a primeira letra deve ser
maiscula. Evite utilizar nomes como m_strNome, v_bRet, p_iNum etc. A IDE lhe proporciona
uma gama de bons recursos, ento no necessrio discriminar que uma varivel do tipo string
colocando str na frente do nome.
string nome;
double conta = 0.5;
int qtdProdutos;

Tabela de Exemplos
A tabela a seguir resume as regras de capitalizao e fornece exemplos para os diferentes tipos de
identificadores:
Identificador
Class
Enum type
Enum values
Event

Case
Pascal
Pascal
Pascal
Pascal

Exception class

Pascal

Read-only Static field

Pascal RedValue
IDisposable
Pascal

Interface

Exemplo
AppDomain
ErrorLevel
FatalError
ValueChange
WebException
Nota: sempre termine com o sufixo Exception

Nota: sempre comece com o prefixo I

Method
Pascal ToString
Namespace
Pascal System.Drawing
Parameter
Camel typeName
Property
Pascal BackColor
Protected instance field Camel redValue
Public instance field
Pascal RedValue
Vale salientar que em nenhum momento encontrei um padro em relao a constantes (const). Em
alguns sites encontrei exemplos como:

CONSTANTE
Constante
constante
_constante

Eu, por saber que existe um padro no mundo Java, utilizo a 1 opo, mas voc livre para
escolher o padro desejado.
Fonte:

http://programandodotnet.wordpress.com/2010/01/24/nomenclaturas-em-c/
http://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx
http://msdn.microsoft.com/en-us/library/czefa0ke(v=vs.71).aspx
http://msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx