Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: encapsulando reajuste de salário

Funcionario.cs

namespace Empresa.Modelos;
class Funcionario {

    private decimal Salario;
    public string? Nome {get;set;}
    
    public Funcionario(decimal salario, string? nome) {
        Salario = salario;
        Nome = nome;
    }

    public void ReajustarSalario(decimal novoSalario) {
        if (novoSalario > Salario) {
            Salario = novoSalario;
            Console.WriteLine("Salário alterado com sucesso!\n");
            Console.WriteLine($"Nome: {Nome}");
            Console.WriteLine($"Salário: R${Salario.ToString("F2")}");
        }
        else {
            Console.WriteLine("O novo salário deve ser maior que o atual.");
        }
    }

}

Program.cs

using Empresa.Modelos;

Console.Clear();
Funcionario f = new Funcionario(4000m, "Julio");
f.ReajustarSalario(3999);
f.ReajustarSalario(4001);
1 resposta
solução!

Olá, Diego, como vai?

O código apresenta uma lógica funcional para a regra de negócio solicitada, garantindo que o reajuste ocorra apenas quando o novo valor é superior ao atual. A utilização do tipo decimal é uma escolha técnica positiva para lidar com valores monetários, pois evita problemas de precisão comum em tipos de ponto flutuante.

Para complementar a implementação e seguir os requisitos de encapsulamento, você pode adicionar uma propriedade que exponha apenas o getter do campo privado. Em C#, isso é comumente feito assim:

public decimal Salario
{ 
    get { return Salario; } 
}

Continue compartilhando suas resoluções, o fórum está a disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!