1
resposta

[Projeto] Faça como eu fiz: agendamento médico

Resolução:

class Consulta
{
    private bool reagendado;
    public string NomePaciente { get; }
    public string Medico { get; }
    public DateTime DataMarcada { get; set; }
    public Consulta(string nomePaciente, string medico, DateTime dataMarcada)
    {
        NomePaciente = nomePaciente;
        Medico = medico;
        DataMarcada = dataMarcada;
    }

    public void Reagendar (DateTime novaData)
    {
        DataMarcada = novaData;
        reagendado = true;
    }

    public void ExibirResumo ()
    {
        Console.WriteLine("Consulta marcada com " + Medico + " para o paciente " + NomePaciente + ".");
        if (reagendado == false)
        {
            Console.WriteLine("Data: " + DataMarcada.ToString("dd/MM/yyyy"));
        }
        else
        {
            Console.WriteLine("Nova data: " + DataMarcada.ToString("dd/MM/yyyy"));
        }
    }
}

program.cs

Consulta consulta1 = new("Sunny", "Neph", new DateTime(2026, 5, 06));
consulta1.ExibirResumo();
consulta1.Reagendar(new DateTime(2025, 5, 25));
consulta1.ExibirResumo();
1 resposta

Oii Christopher, tudo bem?

Obrigada por compartilhar sua resolução no fórum, vai ajudar outros alunos que passarem pela mesma atividade.

A lógica está correta: a flag reagendado controla bem o comportamento do ExibirResumo(), e o encapsulamento ficou adequado com as propriedades get apenas onde faz sentido.

Uma consideração: o campo reagendado é private bool, o que é ótimo. Vale notar que em C# campos booleanos não inicializados assumem false por padrão, então o comportamento já está garantido, mas declarar explicitamente private bool reagendado = false; pode deixar a intenção mais clara para quem lê o código.

Se quiser continuar evoluindo em OO com C#, os próximos passos naturais são herança e encapsulamento:

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade