Tutorial: Crear e implementar interfaces (Visual Basic)
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.
Para definir una interfaz
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 deModule1
al escribirInterface TestInterface
entre las instruccionesModule
yEnd Module
, y luego presione ENTRAR. El Editor de código aplica sangría a la palabra claveInterface
y agrega una instrucciónEnd 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
yEnd Interface
:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementación
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.
Para implementar la interfaz
Agregue una clase de nombre
ImplementationClass
mediante la incorporación de la siguiente instrucción aModule1
, después de la instrucciónEnd Interface
, pero antes de la instrucciónEnd 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
aImplementationClass
, 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 aImplementationClass
para implementarEvent1
,Method1
yProp1
: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()
Para probar la implementación de la interfaz
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 claseForm1
:Dim WithEvents testInstance As TestInterface
Al declarar
testInstance
comoWithEvents
, la claseForm1
puede controlar sus eventos.Agregue el siguiente controlador de eventos a la clase
Form1
para controlar los eventos generados portestInstance
:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Agregue una subrutina de nombre
Test
a la claseForm1
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 implementaMyInterface
, asigna esa instancia al campotestInstance
, establece una propiedad y ejecuta un método por medio de la interfaz.Agregue código para llamar al procedimiento
Test
desde el procedimientoForm1 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).