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

[Dúvida] projeto carro

Reescrever a classe Conta, criada no ultimo desafio, utilizando properties.

class Conta
{
    public int Id { get; set; }
    public string Titular { get; set; }
    public double Saldo { get; set; }
    public string Senha { get; set; }

    public void ExibirConta()
    {
        Console.WriteLine($"indicador da conta: {Id}" );
        Console.WriteLine($"titular da conta: {Titular}");
        Console.WriteLine($"saldo da conta: {Saldo}");
        Console.WriteLine($"senha da conta: {Senha}");
    }

Reescrever os atributos da classe Carro, de modo que eles sejam properties, e adicionar uma nova propertie DescricaoDetalhada, que mostra o fabricante, modelo e ano do carro.

class Carro
{
    public string Modelo { get; set; }
    public string Cor { get; set; }
    public string Marca { get; set; }
    public int Ano { get; set; }
    public int Velocidade { get; set; }
    public string DescricaoDetalhada => $"O carro é do modelo {Modelo} da marca {Marca} do ano {Ano}";
    }

Reescrever a propriedade Ano da classe carro, para que ela apenas aceite valores entre 1960 e 2023.

class Carro
{
    private int ano;
    public string Modelo { get; set; }
    public string Cor { get; set; }
    public string Marca { get; set; }
    public int Ano
    {
        get => ano;
        set
        {
            if (value >= 1960 && value <= 2023)
            {
                ano = value;
            }
            else
            {
                Console.WriteLine("ano invalido.");
            }
        }
        
    }
    public int Velocidade { get; set; }
    public string DescricaoDetalhada => $"O carro é do modelo {Modelo} da marca {Marca} do ano {Ano}";
}

// eu gostaria de saber se é correto eu utilizar a variável auxiliar 'ano' para validar a condição do atributo Ano ou se há alguma boa prática melhor neste caso, pois no momento do curso que estou não foi dito. .

1 resposta
solução!

Oi Giovanna! Tudo joia?

Sua implementação está correta e utiliza uma boa prática ao validar o valor do atributo Ano com uma variável auxiliar. No entanto, há algumas melhorias que podem ser feitas para tornar o código mais robusto e alinhado com boas práticas de programação.

Uma alternativa é lançar uma exceção quando o valor do ano for inválido. Isso torna o erro mais explícito e permite que ele seja tratado adequadamente em outros lugares do código. Veja como ficaria:

class Carro
{
    private int ano;
    public string Modelo { get; set; }
    public string Cor { get; set; }
    public string Marca { get; set; }
    public int Ano
    {
        get => ano;
        set
        {
            if (value >= 1960 && value <= 2023)
            {
                ano = value;
            }
            else
            {
                throw new ArgumentOutOfRangeException("Ano", "O ano deve estar entre 1960 e 2023.");
            }
        }
    }
    public int Velocidade { get; set; }
    public string DescricaoDetalhada => $"O carro é do modelo {Modelo} da marca {Marca} do ano {Ano}";
}

Neste exemplo, ao invés de apenas imprimir uma mensagem de erro, uma exceção ArgumentOutOfRangeException é lançada quando o valor do ano é inválido. Isso segue uma prática comum em C# para validação de dados e ajuda a garantir que o código que utiliza a classe Carro lide adequadamente com valores inválidos.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.