Será muito comum termos uma sobrecarga que resolve um problema pequeno e, na sobrecarga de problemas maiores, podemos usar a estratégia de dividir para conquistar! Com isso, podemos ajudar Beto e sugerir que ele use a sobrecarga Maior(double, double) no código da sobrecarga Maior(double, double, double) com o código a seguir:
public double Maior(double a, double b, double c) { double maiorEntreAeB = Maior(a, b); return Maior(maiorEntreAeB, c); } Muito mais elegante, não é mesmo? E, se você preferir, podemos ter uma forma mais enxuta, sem sacrificar a legibilidade:
public double Maior(double a, double b, double c) { return Maior(Maior(a, b), c); } Além de elegante, esta solução evita o famoso problema da repetição de código e possui um padrão muitas vezes compartilhado entre grupos de sobrecargas.
Repetição de código? Ainda temos este problema no projeto atual para o cliente ByteBank, não é mesmo? Vamos continuar o curso e aprender como resolver isto com o C# e a orientação a objetos!?
Duvida: No exemplo acima, retirado do curso ele fala de sobrecarga, porém não entendi como o programa esta comparando o maior numero entre a,b e c.