DEV Community

Juarez Júnior
Juarez Júnior

Posted on

Dica C#: nameof

Vamos explorar o operador nameof, introduzido no C# 6, que permite obter o nome de variáveis, métodos e propriedades de forma segura e eficiente, especialmente útil para logs e validações. Veja o exemplo no código abaixo.

public class Produto
{
    public string Nome { get; set; }
    public decimal Preco { get; set; }

    public Produto(string nome, decimal preco)
    {
        Nome = nome;
        Preco = preco;
    }

    public void AtualizarPreco(decimal novoPreco)
    {
        if (novoPreco != Preco)
        {
            Console.WriteLine($"{nameof(Preco)} atualizado de {Preco:C} para {novoPreco:C}");
            Preco = novoPreco;
        }
    }

    public void ExibirInformacoes()
    {
        Console.WriteLine($"Produto: {Nome}, {nameof(Preco)}: {Preco:C}");
    }
}

public class Program
{
    public static void Main()
    {
        Produto produto = new Produto("Caneta", 2.99m);
        produto.ExibirInformacoes();

        produto.AtualizarPreco(3.49m); // Loga a mudança de preço
        produto.ExibirInformacoes();
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação:
O operador nameof é muito útil quando se deseja referenciar o nome de variáveis, propriedades ou métodos de forma segura. Isso facilita a refatoração, evitando strings hardcoded em validações e logs. No exemplo acima, usamos nameof para gerar mensagens de log e validação sem precisar escrever o nome das propriedades manualmente, garantindo que, caso o nome da variável mude, o nameof será atualizado automaticamente pelo compilador.

Código fonte: GitHub

Espero que essa dica ajude você a usar o operador nameof para escrever código mais seguro e fácil de manter! Até a próxima.

Top comments (0)