Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida no Ex. 4 da Aula 2 - Muitos Descontos e o Chain of Responsibility

Não consegui entender o código de resposta informado para esse desafio pois não está compilando corretamente . Acredito que apresente inconsistência em algumas das classes criadas. O código do enumerador Formato fica em uma classe própria ou na classe requisição? Tentei das duas formas mas ele só parou de apresentar sintaxe de erro quando o movi para uma classe própria. Gostaria que a versão completa fosse disponibilizada para que eu pudesse fazer a comparação e identificar onde estou errando.

/// public class Conta { public string Titular { get; private set; } public double Saldo { get; private set; }

public Conta(string titular, double saldo) { this.Titular = titular; this.Saldo = saldo; } }

public enum Formato { XML, CSV, PORCENTO }

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

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

interface Resposta { void Responde(Requisicao req, Conta conta); Resposta Proxima { get; set; } }

//Em todas as 3 classes abaixo a propriedade Proximo da interface é solicitada

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

public void Responde(Requisicao req, Conta conta) { //NÃO CONSIGO ACESSAR AS PROPRIEDADES DA CLASSE FORMATO if (req. == Formato.CSV) { Console.WriteLine(conta.Titular + ";" + conta.Saldo); } else { this.OutraResposta.Responde(req, conta); } } }

class RespostaEmPorcento : Resposta { private Resposta OutraResposta { get; set; }

public void Responde(Requisicao req, Conta conta) { //NÃO CONSIGO ACESSAR AS PROPRIEDADES DA CLASSE FORMATO if (req. == Formato.PORCENTO) { Console.WriteLine(conta.Titular + "%" + conta.Saldo); } else { OutraResposta.Responde(req, conta); } } }

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

public void Responde(Requisicao req, Conta conta) { //NÃO CONSIGO ACESSAR AS PROPRIEDADES DA CLASSE FORMATO if (req. == Formato.XML) { Console.WriteLine("" + conta.Titular + "" + conta.Saldo + ""); } else { this.OutraResposta.Responde(req, conta); } } }

///

1 resposta
solução

Analisei melhor a situação e consegui entender onde estava errando.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software