Funcionario.cs
internal class Funcionario(string nome, decimal salario)
{
private decimal _salario = salario;
public string Nome { get; } = nome;
public decimal Salario => _salario;
public void ReajustarSalario(decimal novoSalario)
{
if (novoSalario <= Salario)
throw new ArgumentException("O novo salário deve ser maior que o salário atual.", nameof(novoSalario));
_salario = novoSalario;
Console.WriteLine(this);
}
public override string ToString()
{
StringBuilder sb = new();
sb.AppendLine($"Funcionário: {Nome}");
sb.AppendLine($"Salário atual: {Salario:C}");
return sb.ToString();
}
}
Program.cs
using E04EncapsulandoReajusteDeSalario.Models;
Funcionario f = new("Fernanda Lima", 4000);
try
{
f.ReajustarSalario(3500); //Falha
}
catch (ArgumentException ex)
{
Console.WriteLine($"Erro: {ex.Message}");
}
try
{
f.ReajustarSalario(4200);
}
catch (ArgumentException ex)
{
Console.WriteLine($"Erro no parâmetro [{ex.ParamName}]: {ex.Message}");
}