As convenções de nomenclatura são essenciais para garantir que o código seja legível, consistente e de fácil manutenção. Em C# e .NET, seguir as convenções de nomenclatura recomendadas melhora a clareza, facilita a colaboração entre desenvolvedores e evita ambiguidades no código. Este artigo explora as principais convenções de nomenclatura para classes, métodos, propriedades, variáveis, interfaces e enumerações, oferecendo exemplos práticos e discutindo a importância de boas práticas.
A importância de seguir convenções
Seguir padrões de nomenclatura é uma prática essencial em qualquer linguagem de programação, mas no contexto de C# e .NET, essas convenções são mais que recomendadas — elas são quase um padrão da comunidade. As principais razões para seguir essas convenções incluem:
- Legibilidade: código bem nomeado é mais fácil de ler e entender, mesmo por pessoas que não participaram do desenvolvimento inicial;
- Manutenção: manter e atualizar o código se torna mais simples, pois o nome das variáveis e funções já indicam sua finalidade;
- Consistência: seguir um padrão consistente em todo o projeto melhora a qualidade do código e facilita a revisão por outros desenvolvedores;
- Reuso e extensibilidade: código bem estruturado e nomeado corretamente tende a ser mais modular e fácil de expandir.
Agora, vamos examinar as principais convenções de nomenclatura em C# e .NET.
Nomenclatura de classes
Começando pelas classes, em C# elas seguem a convenção de serem nomeadas sem PascalCase, em que cada palavra no nome começa com uma letra maiúscula. O mesmo se aplica às propriedades públicas. O nome de uma classe e suas propriedades deve ser claro e descritivo quanto ao seu propósito:
public class Cliente
{
public string Nome { get; set; }
public string Sobrenome { get; set; }
public DateTime DataNascimento { get; set; }
}
Caso alguma propriedade da classe não esteja em PascalCase, um aviso será emitido, indicando que é sugerido corrigir a nomenclatura.
Exemplos:
- Correto: Cliente, FormaPagamento, Pedido.
- Incorreto: cliente, forma_pagamento, pedido.
Nomenclatura de métodos
Os métodos também utilizam PascalCase. O nome do método deve indicar o que ele faz, muitas vezes iniciando com um verbo no infinitivo. Métodos devem ser nomeados de forma a refletir claramente sua função.
public class Calculadora
{
public int SomarValores(int primeiroValor, int segundoValor)
{
return primeiroValor + segundoValor;
}
}
Exemplos:
- Correto: CalcularDesconto, AdicionarItem, InativarCliente.
- Incorreto: somaValores, somar_Valores, SOMARVALORES.
Nomenclatura de variáveis locais e parâmetros
Para variáveis locais e parâmetros de métodos, a convenção é usar camelCase. Ou seja, a primeira letra será minúscula e, em seguida, a primeira letra de cada palavra será maiúscula. O nome deve ser descritivo.
public int CalcularDesconto(int valorTotal, int desconto)
{
int valorFinal= valorTotal - desconto;
return valorFinal;
}
Exemplos:
- Correto:
- AdicionarItem(ItemPedido item)
- ConsultarClientes(string nome, string cpf)
- string primeiroNome
- DateTime ultimaDataCompra;
- Incorreto:
- CalcularDesconto(int valor_total, int desconto)
- CalcularDesconto(int VALORTOTAL, int DESCONTO)
- int valor_final
- int VALORFINAL
Nomenclatura de interfaces
As interfaces em C# também usam PascalCase, e adicionalmente podem conter uma letra “I” no início do nome para indicar que se trata de uma interface. O nome da interface deve descrever uma ação ou comportamento.
public interface ICommand
{
void Executar();
}
Nomenclatura de enums
As enumerações também seguem a convenção de PascalCase, em que o nome da enum e cada um de seus valores começa com letra maiúscula. A Microsoft recomenda que os valores sejam claros e descritivos, representando estados ou categorias de forma precisa, com substantivos ou adjetivos.
Na comunidade .NET, é comum o uso do prefixo “E” antes do nome da enumeração (como EStatus), para identificar visualmente que se trata de um tipo enum. Essa prática ajuda especialmente em projetos com muitas entidades e classes.
public enum Status
{
Pendente,
Enviado,
Entregue,
Cancelado
}
Exemplos:
- Correto:
- public enum TipoPagamento
- public enum EStatusPagamento
- Incorreto:
- public enum tipoPagamento
- public enum TIPO_PAGAMENTO
Boas práticas em nomenclatura
Evite abreviações e nomes ambíguos
Evitar abreviações e nomes que não explicam o propósito é fundamental. Ainda que nomes mais curtos possam parecer convenientes, é melhor priorizar a clareza. Nomes explícitos facilitam a compreensão do código, mesmo que sejam um pouco mais longos.
- Correto: BuscarUsuarioPorId, ProcessarCodigoBarras
- Incorreto: Buscar, BusUsuPId
Nomes claros ajudam a identificar rapidamente a função ou objetivo do método ou variável, tornando o código mais intuitivo e acessível para desenvolvedores que trabalham no mesmo projeto.
Evite o uso de identificadores que conflitam com palavras-chave
É recomendável evitar o uso de identificadores que entrem em conflito com palavras-chave de linguagens de programação amplamente usadas. De acordo com a Regra 4 da CLS (Common Language Specification), todas as linguagens compatíveis devem fornecer um mecanismo que permita o acesso a itens nomeados que usam uma palavra-chave dessa linguagem como identificador. O C#, por exemplo, utiliza o sinal “@” como um mecanismo de escape nesse caso.
string @string;
ou
public class Example
{
public void @class()
{
// Código
}
}
Embora seja possível utilizar “@” para evitar conflitos com palavras-chave, é uma boa prática evitar ao máximo o uso de palavras reservadas como identificadores. Métodos ou variáveis com escape “@” podem ser confusos e complicados de manter, além de dificultar a legibilidade do código.
Acelere a sua carreira conosco!
Se você é Desenvolvedor .NET Júnior e quer acelerar sua carreira até nível Pleno com salário de R$7k+, ou mesmo busca a primeira vaga, conheça a Mentoria .NET Start: Clique aqui Se é Desenvolvedor .NET Pleno ou Sênior e quer virar referência técnica em sua equipe e mercado, com salário de R$10k+, conheça a Mentoria .NET Expert: Clique aquiConclusão
Seguir as convenções de nomenclatura em C# e .NET é uma prática essencial para a criação de código limpo, legível e fácil de manter. O uso correto de PascalCase e camelCase, evitar abreviações, garantir que nomes sejam claros e descritivos, e evitar conflitos com palavras-chave são práticas que devem ser seguidas rigorosamente. Manter essas boas práticas resultará em um código mais profissional e, o mais importante, mais fácil de colaborar e expandir em longo prazo.