Hospede.cs
internal class Hospede(string nome)
{
public string Nome { get; } = nome;
}
Quarto.cs
internal class Quarto(int numero)
{
private decimal _valorDiaria;
public int Numero { get; } = numero;
public decimal ValorDiaria
{
get => _valorDiaria;
set
{
if (value < 0)
throw new ArgumentException("O valor da diária não pode ser negativo!");
else
_valorDiaria = value;
}
}
}
Reserva.cs
internal class Reserva
{
private readonly int _diarias;
public Hospede Hospede { get; }
public Quarto Quarto { get; }
public decimal ValorTotal => _diarias * Quarto.ValorDiaria;
public Reserva(Hospede hospede, Quarto quarto, int diarias)
{
_diarias = diarias > 1 ? diarias : throw new ArgumentException("O número de diárias precisa ser maior que zero!");;
Hospede = hospede;
Quarto = quarto;
}
public void ExibirDetalhes()
{
Console.WriteLine($"Reserva para: {Hospede.Nome}");
Console.WriteLine($"Quarto: {Quarto.Numero}");
Console.WriteLine($"Valor total: {ValorTotal:C}");
}
}
Program.cs
Hospede hospede = new("Juliana Moura");
Quarto quarto = new(101);
quarto.ValorDiaria = 250;
Reserva reserva = new(hospede, quarto, 3);
reserva.ExibirDetalhes();