Buscador

Enlace dinámico de eventos - II

Como ventaja adicional, el objeto sobre el que vamos a manipular sus eventos podemos declararlo tanto a nivel local como en la zona de declaraciones, a diferencia del enlace estático, que nos obliga a declarar el objeto en la zona de declaraciones del módulo en el que vayamos a utilizarlo. Para establecer un enlace dinámico entre un evento y un manipulador, utilizaremos la instrucción AddHandler. Esta instrucción, recibe como primer parámetro el evento a conectar en el formato NombreObjeto.NombreEvento. Como segundo parámetro, pasaremos la dirección de entrada al procedimiento que deberá ejecutar el evento, y que obtenemos a través de la instrucción AddressOf. El Código fuente 338, muestra el procedimiento Main( ), en el que pedimos al usuario que introduzca un número, y según el valor obtenido, conectamos el evento con uno de los dos procedimientos manipuladores antes descritos.

Module Module1
'....
'....
Sub Main()
' pedir un número al usuario para conectar a uno de los
' dos procedimientos manipuladores de evento que hemos escrito
Dim liTipoManip As Integer
Console.WriteLine("Introduzca el número 1 ó 2," & _
" para seleccionar el manipulador de evento a utilizar")
liTipoManip = Console.ReadLine()
' instanciar un objeto Empleado
Dim loMiEmpleado As New Empleado()
' asignar un manejador de evento en tiempo de ejecución
' en función del número que el usuario ha introducido
Select Case liTipoManip
Case 1
AddHandler loMiEmpleado.LimiteSueldo, AddressOf SobreAsignacionSueldo
Case 2
AddHandler loMiEmpleado.LimiteSueldo, AddressOf SalarioIncorrecto
End Select
loMiEmpleado.Nombre = "ANTONIO"
' esta asignación provoca el evento,
' ello ejecutará uno de los manipuladores
' de evento que hemos conectado
loMiEmpleado.Sueldo = 2500
Console.ReadLine()
End Sub
'....
'....
End Module
Código fuente 338

No hay comentarios:

Publicar un comentario