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();
}
}
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)