La sobrecarga, overload, es la posibilidad de tener varias versiones de un mismo método, vamos a ver como crearlo y como funciona desde el lenguaje VB.
Las características de la sobrecarga permite escribir varias versiones del mismo método, en VB no es necesario indicar con ninguna palabra previa que un método está sobrecargado basta con que existan dos procedimientos o funciones con el mismo nombre pero tengan distintas líneas de parámetros.
En el ejemplo que sigue disponemos de tres métodos new.
La segunda y la tercera son iguales, aunque las variables sean distintas, por lo tanto deberíamos eliminar una de las dos.
Public Class Ejemplos
Private Sub New()
End Sub
Public Sub New(ByVal Euros As Double)
End Sub
Public Sub New(ByVal Dolares As Double)
End Sub
End Class
Para este caso la solución podría pasar por :
Public Class Ejemplos
Enum Monedas
Euro = 1
Dolar = 2
Libra = 3
Yen = 4
End Enum
Private Sub New()
End Sub
Public Sub New(ByVal Importe As Double, ByVal Cual As Monedas)
End Sub
End Class
En la solución se utiliza una enumeración, no vista todavía, pero como se puede observar es una definición de opciones posibles para un valor.
La utilización de dicha clase podría quedar como sigue:
Podemos observar como se introduce un importe y luego solo hay que elegir una de las opciones disponibles.
De esa forma no habría que utilizar una sobrecarga para resolver el problema.
Solo quedaría escribir un método convertir para realizar la conversión adecuada en función de lo que se necesite.
Public Function Convertir(ByVal Cual As Monedas) As Double
Select Case Moneda
Case Monedas.Euro
Select Case Cual
Case Monedas.Dolar
Convertir = Import * 1.22
Case Monedas.Libra
Case Monedas.Yen
End Select
Case Monedas.Dolar
Case Monedas.Libra
Case Monedas.Yen
End Select
End Function
De tal forma que en el principal quedaría.
Module Module1
Sub Main()
Dim Importe As Double = Console.ReadLine
Dim Objeto As Ejemplos = New Ejemplos(Importe, Ejemplos.Monedas.Euro)
Console.WriteLine(Objeto.Convertir(Ejemplos.Monedas.Dolar))
Console.ReadLine()
End Sub
End Module
Síguenos en: Facebook Sobre aulaClic Política de Cookies