Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las interfaces describen las características de las propiedades, los métodos y los eventos, pero dejan los detalles de implementación hasta estructuras o 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:
El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizando el IDE.
Para definir una interfaz
Abra un nuevo proyecto de aplicación windows de Visual Basic.
Agregue un nuevo módulo al proyecto haciendo clic en Agregar módulo en el menú Proyecto .
Asigne un nombre al nuevo módulo
Module1.vb
y haga clic en Agregar. Se muestra el código del nuevo módulo.Defina una interfaz denominada
TestInterface
dentroModule1
escribiendoInterface TestInterface
entre lasModule
instrucciones yEnd Module
y presionando 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 colocando el código siguiente entre las
Interface
instrucciones yEnd Interface
:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementación
Es posible que observe que la sintaxis utilizada para declarar miembros de interfaz es diferente de 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 denominada
ImplementationClass
agregando la siguiente instrucción aModule1
, después de laEnd Interface
instrucción pero antes de laEnd Module
instrucción y, a continuación, presione ENTRAR:Class ImplementationClass
Si está trabajando en el entorno de desarrollo integrado, el Editor de código proporciona una instrucción coincidente
End Class
al presionar ENTRAR.Agregue la siguiente
Implements
instrucción aImplementationClass
, que asigna el nombre a la interfaz que implementa la clase:Implements TestInterface
Cuando se muestra por separado de otros elementos en la parte superior de una clase o estructura, la
Implements
instrucción 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 necesarios
TestInterface
al presionar ENTRAR y 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 siguiente código enImplementationClass
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
Implements
instrucción asigna un nombre a la interfaz y al miembro de interfaz que se va a implementar.Complete la definición de
Prop1
agregando un campo privado a la clase que almacene el valor de la 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
Complete la definición de
Method1
agregando 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 forma predeterminada, el formulario de inicio se denomina
Form1
.Agregue el siguiente
testInstance
campo a laForm1
clase :Dim WithEvents testInstance As TestInterface
Al declarar
testInstance
comoWithEvents
, laForm1
clase puede controlar sus eventos.Agregue el siguiente controlador de eventos a la
Form1
clase para controlar los eventos generados portestInstance
:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Agregue una subrutina denominada
Test
a laForm1
clase 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
Test
procedimiento crea una instancia de la clase que implementaMyInterface
, asigna esa instancia altestInstance
campo, establece una propiedad y ejecuta un método a través de la interfaz .Agregue código para llamar al procedimiento
Test
desde el procedimientoForm1 Load
de su 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
Ejecute el
Test
procedimiento presionando F5. Se muestra el mensaje "Prop1 se estableció en 9". Después de hacer clic en Aceptar, se muestra el mensaje "El parámetro X para Method1 es 5". Haga clic en Aceptar y se muestra el mensaje "El controlador de eventos detectó el evento".