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

Resoluçao

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

class contaBanco
{
    public int numero { get; set; }
    public string titular { get; set; }
    public string Senha { get; set; }
    public string Indicador { get; set; }
}

2 - 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.

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

class carro
{
    public string modelo { get; set; }
    public string marca { get; set; }
    public string cor { get; set; }
    private int _ano;

    public int ano
    {
        get
        {
            return _ano;
        }
        set
        {
            if (value  <= 1961 || value >= 2024)
            {
                Console.WriteLine("Ano invalido");
            }
            else
            {
                _ano = value;
            }
        }
    }

    public string DescricaoResumida => $"Modelo: {modelo} \nMarca: {marca}  \nCor: {cor} \nAno: {ano}";
    

}

4 - Desenvolver a classe Produto, com os atributos nome, marca, preco e estoque. Além disso, garantir que o preço e o estoque do produto sejam valores positivos e criar uma propriedade que mostra detalhadamente as informações do produto, para que seja usado pela equipe de vendas.

class Produtos
{
    public string nome { get; set; }
    public string marca { get; set; }
    private int _preco;

    public int preco
    {
        get
        {
            return _preco;
        }
        set
        {
            if (value < 0)
            {
                Console.WriteLine("Saldo zerado");
            }
            else
            {
                _preco = value;
            }
    }
    }

    private int _estoque;

    public int estoque
    {
        get
        {
            return _estoque;
        }
        set
        {
            if (value < 0)
            {
                Console.WriteLine("Estoque zerado");
            }
            else
            {
                _estoque = value;
            }
    }
    }

    public string Descricao =>  $"{nome}, {marca}, {preco},{estoque}";
   
    
}
1 resposta
solução!

Olá, Marcelo. Tudo bem?

Obrigado por compartilhar seu código aqui com gente.

Gostei de como você utilizou as properties para encapsular os atributos das classes, especialmente para limitar o valor da propriedade Ano. Isso realmente ajuda a manter a integridade dos dados. Além disso, a criação de propriedades como DescricaoResumida e Descricao traz uma visão geral útil dos objetos, o que pode ser valioso para aplicações práticas.

Uma sugestão para aprimorar seu código, você poderia usar a propriedade init do C# 9, que permite definir valores imutáveis durante a inicialização, mas sem modificá-los depois. Isso é útil para propriedades como nome e marca, que podem não precisar de ajustes após a criação. Veja um exemplo:

public class Produto
{
    public string Nome { get; init; }
    public string Marca { get; init; }
    public decimal Preco { get; private set; }
    public int Estoque { get; private set; }

    public Produto(string nome, string marca, decimal preco, int estoque)
    {
        Nome = nome;
        Marca = marca;
        Preco = preco >= 0 ? preco : throw new ArgumentException("Preço deve ser positivo.");
        Estoque = estoque >= 0 ? estoque : throw new ArgumentException("Estoque deve ser positivo.");
    }
}

Aqui, Nome e Marca são definidos uma vez com init, e Preco e Estoque permanecem acessíveis apenas por métodos internos.

Conte com o apoio do Fórum. Abraços e bons estudos!