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

Erro no Resultados Finais do Codigo

namespace ByteBank.Funcionarios { public class Funcionario { public string Nome { get; set; } public string CPF { get; set; } public double Salario { get; set; }

    public double GetBonificacao()
    {
       return Salario *=0.10 ;
    }

}

}

namespace ByteBank.Funcionarios { public class Diretor { public string Nome { get; set; } public string CPF { get; set; } public double Salario { get; set; }

    public double GetBonificacao()
    {

        return Salario;
    }
}

}

namespace ByteBank {

    public class GerenciadorBonificacao
    {
    private double _totalBonificacao;

    public void Registrar(Funcionario funcionario)
    {
        _totalBonificacao += funcionario.GetBonificacao();
    }

    public void Registrar(Diretor diretor)
    {
        _totalBonificacao += diretor.GetBonificacao();
    }

    public double GetTotalBonificacao()
    {
        return _totalBonificacao;
    }
}
}

namespace ByteBank { class Program { static void Main(string[] args) {

        Funcionario carlos = new Funcionario();
        carlos.Nome = "Carlos";
        carlos.CPF = "546.879.157-20";
        carlos.Salario = 2000;


        Diretor roberta = new Diretor();
        roberta.Nome = "Roberta";
        roberta.CPF = "454.658.148-3";
        roberta.Salario = 5000;


        Console.WriteLine(carlos.Nome);
        Console.WriteLine(carlos.GetBonificacao());

        Console.WriteLine(roberta.Nome);
        Console.WriteLine(roberta.GetBonificacao());

        GerenciadorBonificacao gerenciador = new GerenciadorBonificacao();

        gerenciador.Registrar(carlos);
        gerenciador.Registrar(roberta);

        Console.WriteLine("O total de bonificação é de " + gerenciador.GetTotalBonificacao());

        Console.ReadLine();


    }
}

}

O Meu código está dando um erro na hora de imprimir os valores

Ta imprimindo Carlos 200 Roberta 5000

Mais o resultado da soma apresenta o valor 5020

Mais se eu realizar a seguinte alteração no código

colocar o gerenciador.Registrar(carlos); antes do Console.WriteLine(carlos.Nome);

o programa imprime o seguintes valores

Carlos 20 Roberta 5000 O resultado da soma apresenta o valor 5200

Não consigo entender porque está apresentado essa alteração de valores dependendo da posição do gerenciador.Registrar(carlos);

1 resposta
solução!

Boa noite Guilherme, tudo bom?

O problema atualmente está na sua classe Funcionario, no método GetBonificacao tem um "=" a mais.

O código que postou acima:

namespace ByteBank.Funcionarios
{
    public class Funcionario
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public double Salario { get; set; }

        public double GetBonificacao()
        {
            return Salario *=0.10;
        }
    }
}

O correto é:

namespace ByteBank.Funcionarios
{
    public class Funcionario
    {
        public string Nome { get; set; }
        public string CPF { get; set; }
        public double Salario { get; set; }

        public double GetBonificacao()
        {
            return Salario * 0.10;
        }
    }
}