Ir al contenido principal

Delegate en VB

Los delegados son una característica importante en Visual Basic (VB) que permite crear referencias a métodos y pasarlos como argumentos a otros métodos. Esto facilita la implementación de patrones de diseño como el patrón de diseño observer y el manejo de eventos en aplicaciones VB.

¿Qué es un Delegate en VB?

Un delegado en VB es un tipo de datos que representa una referencia a un método. Permite encapsular un método y pasarlo como un argumento a otros métodos o devolverlo como un valor de retorno de otro método.

Los delegados son especialmente útiles cuando se trabaja con eventos, ya que permiten que una clase notifique a otras clases cuando ocurre algún evento.

Ejemplo de uso de Delegate en VB

Veamos un ejemplo de cómo se declara y utiliza un delegado en VB:

' Declaración de un delegado
Delegate Function OperacionMatematica(ByVal x As Integer, ByVal y As Integer) As Integer

' Definición de métodos que se pueden asignar al delegado
Function Sumar(ByVal x As Integer, ByVal y As Integer) As Integer
    Return x + y
End Function

Function Restar(ByVal x As Integer, ByVal y As Integer) As Integer
    Return x - y
End Function

Sub Main()
    ' Creación de una instancia del delegado y asignación de un método
    Dim op As New OperacionMatematica(AddressOf Sumar)

    ' Llamada al método asignado al delegado
    Dim resultado As Integer = op(5, 3) ' Output: 8
    Console.WriteLine("Resultado: " & resultado)

    ' Reasignación del método del delegado
    op = AddressOf Restar

    ' Llamada al método asignado al delegado
    resultado = op(5, 3) ' Output: 2
    Console.WriteLine("Resultado: " & resultado)
End Sub

En este ejemplo, declaramos un delegado llamado OperacionMatematica que puede referenciar métodos que toman dos enteros como parámetros y devuelven un entero. Luego, definimos dos métodos Sumar y Restar, que coinciden con la firma del delegado. Finalmente, creamos una instancia del delegado y le asignamos el método Sumar, luego lo llamamos para realizar la suma. Después, reasignamos el delegado al método Restar y lo llamamos para realizar una resta.

Comentarios

Entradas más populares de este blog