Unidad 22. La sobrecarga en las clases en VB (I)





22.1. Objetivos del tema.

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.

22.2. Introducción.

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.

22.3. Creación.

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

Octubre-2010
Pág. 22.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies