1
resposta

NullReferenceException Exercício 6

Estou recebendo uma exceção no Else após a primeira comparação de formato. Alguém poderia me ajudar?

class Program
    {
        static void Main(string[] args)
        {
            Conta conta = new Conta("TESTE", 1000);

            Resposta r1 = new RespostaEmPontoEVirgula();
            Resposta r2 = new RespostaEmXML();
            Resposta r3 = new RespostaEmPorCento();

            r1.Responde(new Requisicao(Formato.XML), conta);
        }
    }

    interface Resposta
    {
        Resposta OutraResposta { get; set; }
        void Responde(Requisicao requisicao, Conta conta);
    }

    class Requisicao
    {
        public Formato Formato { get; private set; }

        public Requisicao(Formato formato)
        {
            this.Formato = formato;
        }
    }

class RespostaEmPontoEVirgula : Resposta
    {
        public Resposta OutraResposta{ get; set; }

        public void Responde(Requisicao requisicao, Conta conta)
        {
            if (requisicao.Formato == Formato.CSV)
            {
                Console.WriteLine(conta.Nome + ";" + conta.Saldo);
                Console.ReadKey();
            }
            else
            {
                OutraResposta.Responde(requisicao, conta);
                 // A EXCEÇÃO ESTÁ OCORRENDO NESSE MOMENTO, POIS LÁ EM CIMA PASSO O FORMATO COMO XML.
            }
        }
    }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Rádrick!

Parece que ficou faltando popular a propriedade OutraResposta no seu método Main.

class Program
    {
        static void Main(string[] args)
        {
            Conta conta = new Conta("TESTE", 1000);

            Resposta r1 = new RespostaEmPontoEVirgula();
            Resposta r2 = new RespostaEmXML();
            Resposta r3 = new RespostaEmPorCento();

            // ---- adicionar esse trecho ----- //
            r1.OutraResposta = r2;
            r2.OutraResposta = r3;

            r1.Responde(new Requisicao(Formato.XML), conta);
        }
    }