Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida no Exercicio.

Boa noite pessoal tudo bem?

estou com duvida no neste exercício e na sua resposta Fernanda decidiu aplicar seu conhecimento sobre composição utilizando as classes Pessoa e Empresa criadas por Juarez. Porém, seu código não esta funcionando em tempo de execução (runtime). Vejamos seu código:



public class Pessoa
{
    public string nome;
    public string cpf;
    public int idade;
    public Endereco endereco;
}

public class Empresa
{
    public string razaoSocial;
    public string cnpjs;
    public Endereco endereco;
}


class Program
{
    static void Main(string[] args)
    {
        Pessoa guilherme = new Pessoa();
        guilherme.nome = "Guilherme";
        guilherme.endereco.logradouro  = "Avenida XYZ";
    }
}

Ela esta acessando uma propriedade de um objeto que não foi inicializado.

Como a classe Pessoa não instanciou internamente a propriedade endereco ela é null. É por isso que a instrução guilherme.endereco.logradouro resulta em um erro (exceção), pois guilherme.endereco é null.

--- Eu nao entendi a parte que ele direciona de "instanciar internamente" ele quer dizer que fez errado por nao teve um " Endere0o logradouro = new Endereco" ??

3 respostas
solução!

Oi Isac tudo bem?

Sim, faltou instancia Endereco.

Olha como ficaria o código

using System;
public class Pessoa
{
    public string nome;
    public string cpf;
    public int idade;
    public Endereco endereco;
}

public class Empresa
{
    public string razaoSocial;
    public string cnpjs;
    public Endereco endereco;
}

public class Endereco
{
    public string logradouro;
    public string complemento;
    public string numero;
    public string bairro;
    public string cidade;
    public string cep;
}


class Program
{
    static void Main(string[] args)
    {
        Pessoa guilherme = new Pessoa();
        guilherme.nome = "Guilherme";
        guilherme.endereco = new Endereco();
        guilherme.endereco.logradouro  = "Avenida XYZ";

         Console.Write("guilherme.endereco.logradouro: ");
        Console.Write(guilherme.endereco.logradouro);


    }
}

Espero ter ajudado!!!

Bom dia, Obrigado pela ajuda

Disponha e bons estudos!!!!