Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Las interfaces describen las características de las propiedades, los métodos y los eventos, pero dejan los detalles de implementación a las estructuras o las clases.
En este tutorial se muestra cómo declarar e implementar una interfaz.
Nota
Este tutorial no proporciona información sobre cómo crear una interfaz de usuario.
Nota
Es posible que tu equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Personalizar el IDE.
Abra un proyecto Aplicación Windows de Visual Basic nuevo.
Agregue un nuevo módulo al proyecto;para ello, haga clic en Agregar módulo en el menú Proyecto.
Asigne el nombre Module1.vb
al nuevo módulo y haga clic en Agregar. Se muestra el código del nuevo módulo.
Defina una interfaz de nombre TestInterface
dentro de Module1
al escribir Interface TestInterface
entre las instrucciones Module
y End Module
, y luego presione ENTRAR. El Editor de código aplica sangría a la palabra clave Interface
y agrega una instrucción End Interface
para formar un bloque de código.
Defina una propiedad, un método y un evento para la interfaz al colocar el código siguiente entre las instrucciones Interface
y End Interface
:
Property Prop1() As Integer
Sub Method1(ByVal X As Integer)
Event Event1()
Es posible que observe que la sintaxis empleada para declarar miembros de interfaz es diferente a la sintaxis usada para declarar miembros de clase. Esta diferencia refleja el hecho de que las interfaces no pueden contener código de implementación.
Agregue una clase de nombre ImplementationClass
mediante la incorporación de la siguiente instrucción a Module1
, después de la instrucción End Interface
, pero antes de la instrucción End Module
, y luego presione ENTRAR:
Class ImplementationClass
Si está trabajando en el entorno de desarrollo integrado, el Editor de código proporciona una instrucción End Class
coincidente al presionar ENTRAR.
Agregue la siguiente instrucción Implements
a ImplementationClass
, lo que asigna un nombre a la interfaz que implementa la clase:
Implements TestInterface
Cuando se enumeran por separado de otros elementos en la parte superior de una clase o estructura, la instrucción Implements
indica que la clase o estructura implementa una interfaz.
Si está trabajando en el entorno de desarrollo integrado, el Editor de código implementa los miembros de clase que necesita TestInterface
al presionar ENTRAR, y se puede omitir el paso siguiente.
Si no está trabajando en el entorno de desarrollo integrado, debe implementar todos los miembros de la interfaz MyInterface
. Agregue el código siguiente a ImplementationClass
para implementar Event1
, Method1
y Prop1
:
Event Event1() Implements TestInterface.Event1
Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1
End Sub
Public Property Prop1() As Integer Implements TestInterface.Prop1
Get
End Get
Set(ByVal value As Integer)
End Set
End Property
La instrucción Implements
asigna un nombre a la interfaz y al miembro de interfaz que se va a implementar.
Complete la definición de Prop1
mediante la incorporación de un campo privado a la clase que almacenaba el valor de propiedad:
' Holds the value of the property.
Private pval As Integer
Devuelve el valor de pval
desde el descriptor de acceso get de la propiedad.
Return pval
Establece el valor de pval
en el descriptor de acceso set de la propiedad.
pval = value
Para completar la definición de Method1
, agregue el código siguiente.
MsgBox("The X parameter for Method1 is " & X)
RaiseEvent Event1()
Haga clic con el botón derecho en el formulario de inicio del proyecto en el Explorador de soluciones y haga clic en Ver código. El editor muestra la clase del formulario de inicio. De manera predeterminada, el nombre del formulario de inicio es Form1
.
Agregue el campo testInstance
siguiente a la clase Form1
:
Dim WithEvents testInstance As TestInterface
Al declarar testInstance
como WithEvents
, la clase Form1
puede controlar sus eventos.
Agregue el siguiente controlador de eventos a la clase Form1
para controlar los eventos generados por testInstance
:
Sub EventHandler() Handles testInstance.Event1
MsgBox("The event handler caught the event.")
End Sub
Agregue una subrutina de nombre Test
a la clase Form1
para probar la clase de implementación:
Sub Test()
' Create an instance of the class.
Dim T As New ImplementationClass
' Assign the class instance to the interface.
' Calls to the interface members are
' executed through the class instance.
testInstance = T
' Set a property.
testInstance.Prop1 = 9
' Read the property.
MsgBox("Prop1 was set to " & testInstance.Prop1)
' Test the method and raise an event.
testInstance.Method1(5)
End Sub
El procedimiento Test
crea una instancia de la clase que implementa MyInterface
, asigna esa instancia al campo testInstance
, establece una propiedad y ejecuta un método por medio de la interfaz.
Agregue código para llamar al procedimiento Test
desde el procedimiento Form1 Load
del formulario de inicio:
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Test() ' Test the class.
End Sub
Para ejecutar el procedimiento Test
, presione F5. Se muestra el mensaje "Prop1 was set to 9" (Prop1 establecido en 9). Después de hacer clic en Aceptar, se muestra el mensaje "The X parameter for Method1 is 5" (El parámetro X de Method1 es 5). Haga clic en Aceptar y se muestra el mensaje "The event handler caught the event" (El controlador de eventos detectó el evento).
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios:
Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Discover interfaces - Training
In this module, you learn how to design an interface with properties in C#, develop a class that implements the interface, and formulate property definitions within the interface.