Na minha proposta da classe Produto
, trabalhei com exceptions caso valor ou estoque sejam menor que zero, e adicionei a função DoubleToCurrency
para converter o valor de double para uma leitura mais amigável de moeda.
Produto.cs
using System.Globalization;
public class Produto
{
private double _preco;
private int _estoque;
private string Nome { get; }
private string Marca { get; }
private double Preco
{
get => _preco;
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(Preco), $"O preço não pode ser menor do que zero.");
}
_preco = value;
}
}
private int Estoque {
get => _estoque;
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(Estoque), $"O estoque não pode ser menor do que zero.");
}
_estoque = value;
}
}
public string Detalhes => $"\nProduto: {Nome}" +
$"\nMarca: {Marca}" +
$"\nPreço: {DoubleToCurrency(Preco)}" +
$"\nEstoque: {Estoque}";
public Produto(string nome, string marca, double preco, int estoque)
{
Nome = nome;
Marca = marca;
Preco = preco;
Estoque = estoque;
}
private static string DoubleToCurrency(double value, string culture = "pt-BR")
{
return value.ToString("C", new CultureInfo(culture));
}
}
Program.cs
var produto = new Produto(
"Robô Aspirador Kabum! Smart 900 - 127v, Branco- KBSF011",
"KaBuM!",
1999.90,
42
);
Console.WriteLine(produto.Detalhes);