Resolução:
InformacaoTecnica.cs
class InformacaoTecnica
{
public InformacaoTecnica(int tamanhoArquivo, string sistemaCompativel)
{
TamanhoArquivo = tamanhoArquivo;
SistemaCompativel = sistemaCompativel;
}
public int TamanhoArquivo { get; }
public string SistemaCompativel { get; }
public void ExibirInformacaoTecnica()
{
Console.WriteLine($"Tamanho: {TamanhoArquivo}MB");
Console.WriteLine($"Compatível em: {SistemaCompativel}");
}
}
ProdutoDigital.cs
class ProdutoDigital
{
private double preco;
public string Nome { get; set; }
public double Preco
{
get => preco;
set
{
if (value >= 0)
{
preco = value;
}
else
{
preco = 0;
}
}
}
private InformacaoTecnica InfoTecnica;
public ProdutoDigital(string nome, double preco, InformacaoTecnica infoTecnica)
{
Nome = nome;
Preco = preco;
InfoTecnica = infoTecnica;
}
public void ExibirDetalhes ()
{
Console.WriteLine($"Produto: {Nome}");
Console.WriteLine($"Preço: R$ {Preco}");
InfoTecnica.ExibirInformacaoTecnica();
}
}
program.cs
InformacaoTecnica infoTecnica1 = new InformacaoTecnica(1500, "Windows/Mac");
var produtoDigital1 = new ProdutoDigital("Photoshop", 89.99, infoTecnica1);
produtoDigital1.ExibirDetalhes();