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

Faça como eu fiz: montagem de computadores

Program.cs

using CentroTecnico.Modelos;
Processador cpu = new Processador("Intel", "i9-14700K");
PlacaMae placaMae = new PlacaMae("ASUS", "LGA1700");
Computador pc = new Computador(cpu, placaMae);

Console.Clear();
pc.ExibirConfiguracao();

Computador.cs

namespace CentroTecnico.Modelos;
internal class Computador {
    public Processador? processador {get;}
    public PlacaMae? placaMae {get;}

    public Computador(Processador? processador, PlacaMae? placaMae) {
        this.processador = processador;
        this.placaMae = placaMae;
    }

    public void ExibirConfiguracao() {
        Console.WriteLine($"Marcado do Processador: {processador!.Marca}");
        Console.WriteLine($"Modelo do Processador: {processador!.Modelo}");
        Console.WriteLine($"Fabricante da placa mãe: {placaMae!.Fabricante}");
        Console.WriteLine($"Socket da placa mãe: {placaMae!.Socket}");
    }

}

PlacaMae.cs

namespace CentroTecnico.Modelos;
internal class PlacaMae {
    public string? Fabricante {get;}
    public string? Socket {get;}

    public PlacaMae(string? fabricante, string? socket) {
        Fabricante = fabricante;
        Socket = socket;
    }
}

Processador.cs

namespace CentroTecnico.Modelos;
internal class Processador {
    public string? Marca {get;}
    public string? Modelo {get;}

    public Processador(string? marca, string? modelo) {
        Marca = marca;
        Modelo = modelo;
    }
}
1 resposta
solução!

Oi, Diego. Como vai?

Seu exemplo ficou bem organizado e mostra muito bem a ideia de composição no lugar de herança, porque o Computador é montado com um Processador e uma PlacaMae. Também gostei da separação das classes e do uso do método ExibirConfiguracao(), que deixou a leitura do projeto mais clara.

Uma dica interessante para o futuro é usar override ToString() para exibir informações dos objetos de forma mais prática. Veja este exemplo:


class Processador
{
    public string Marca { get; }
    public string Modelo { get; }

    public Processador(string marca, string modelo)
    {
        Marca = marca;
        Modelo = modelo;
    }

    public override string ToString()
    {
        return $"Processador: {Marca} - {Modelo}";
    }
}

Neste exemplo, o método ToString() monta um texto automático para mostrar os dados do objeto, o que pode facilitar a exibição das configurações no console.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!