“Overloading” de Operadores

Na continuação dos artigos que venho a publicar sobre algumas características que mais me atraem no .NET Framework, apresento hoje o “Overload” de Operadores!

Suponhamos que para um dado projecto, temos que registar para uma equipa o total de golos marcados e golos sofridos no decurso de um conjunto de jogos. Para tal, podemos usar uma classe como a seguinte para representar os dados:

Data Class

Assim, basta então criar uma instância da nossa classe para guardar os resultados e outras tantas para os jogos, e depois somar tudo!

Para efeitos de demonstração, suponhamos que pretendemos registar o resultado de 3 jogos e depois apresentar o resultado final:

Main Program without Operator Overloading

Neste caso, vamos precisamos de somar os valores das propriedades separadamente à nossa instância “total”, como podemos ver dentro do ciclo For; mas podemos evitar este passo, simplesmente indicando ao compilador como é que ele pode somar instâncias da nossa classe!

Introduzimos assim na classe de dados um “overload” ao operador de soma:

Data Class with Operator Overloading

De notar que este “overload” é um método estático (Static) e tem a indicação do tipo de dados e do operador a implementar (operator +).

Finalmente, temos apenas de actualizar o nosso código para passar a usar o operador agora criado:

Main Program using Operator Overloading

O resultado final é exactamente o mesmo, mas em termos práticos mostra-se uma solução muito mais agradável de implementar do que simplesmente somar as propriedades isoladas!

Existem algumas regras que devem saber antes de se lançaram a criar operadores para tudo o que é classe que usam, pelo que a sua leitura é aconselhada! ;)

Technorati Tags: .NET, Operator Overloading, Programação

0 Resposta a ““Overloading” de Operadores”


  • Sem Comentários

Deixar uma Resposta