0
respostas

[Dúvida] Desafio 5

Eu dei uma olhada na resolução do instrutor pro exercício 5 e a resposta é essa:

class ProdutoRestaurante
{
    public string Nome { get; set; }
    public decimal Preco { get; set; }
}

class Mesa
{
    public int Numero { get; set; }
    public List<Pedido> Pedidos { get; set; } = new List<Pedido>();
}

class Pedido
{
    public ProdutoRestaurante Produto { get; set; }
    public int Quantidade { get; set; }
}

class Cardapio
{
    public List<ProdutoRestaurante> Itens { get; set; } = new List<ProdutoRestaurante>();
}

class Restaurante
{
    public List<Mesa> Mesas { get; set; } = new List<Mesa>();
    public Cardapio Cardapio { get; set; } = new Cardapio();
}

Aí com base nisso eu tentei fazer algo parecido pro último exercício desse módulo, que é fazer a classe Genero e atrelar ela à classe Musica.

Só que deu errado, porque eu tentei escrever public Genero Genero { get; set; } na classe Musica e depois NomeDaMusica.Genero.Nome = "Metal"; no Program.cs, o que resultou em um Unhandled Exception.

O motivo: Eu não instanciei o Objeto Genero antes de declarar o Nome dele, o que até faz sentido e eu consigo entender.

Ou seja, eu deveria ter escrito assim: public Genero Genero { get; set; } = new Genero();

Mas o que eu não consigo entender é que, no código do instrutor, ele faz a mesma coisa pro ProdutoRestaurante Produto { get; set; }, ele não instancia esse Objeto, apenas escreve a propriedade e prossegue com o código.

Estou confuso quanto a isso.