Convenções de nomenclatura em C#

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 StartClique 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 ExpertClique aqui

Conclusã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.