Tutorial: Crear e implementar interfaces (Visual Basic)
Las interfaces describen las características de propiedades, métodos y 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
En este tutorial no se proporciona información sobre cómo crear una interfaz de usuario.
Nota
Es posible que el 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 haciendo clic en Agregar módulo en el menú Project proyecto.
Asigne al nuevo módulo el nombre
Module1.vby haga clic en Agregar. Se muestra el código del nuevo módulo.Defina una interfaz denominada dentro escribiendo entre las instrucciones y y, a
TestInterfaceModule1Interface TestInterfaceModuleEnd Modulecontinuación, presionando ENTRAR. El Editor de código aplica sangría a la palabra clave y agrega una instrucción para formar un bloque deInterfaceEnd Interfacecódigo.Defina una propiedad, un método y un evento para la interfaz colocando el código siguiente entre las
InterfaceEnd Interfaceinstrucciones y :Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementación
Puede observar que la sintaxis utilizada para declarar miembros de interfaz es diferente de la sintaxis utilizada 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 agregando la siguiente instrucción a , después de la instrucción pero antes de la instrucción y, a
ImplementationClassModule1continuación, presioneEnd InterfaceEnd ModuleENTRAR:Class ImplementationClassSi trabaja en el entorno de desarrollo integrado, el Editor de código proporciona una instrucción de
End Classcoincidencia al presionar ENTRAR.Agregue la siguiente
Implementsinstrucción a , que denomina la interfaz que implementa la claseImplementationClass:Implements TestInterfaceCuando se muestra por separado de otros elementos en la parte superior de una clase o estructura, la instrucción indica que la clase o
Implementsestructura implementa una interfaz .Si trabaja en el entorno de desarrollo integrado, el Editor de código implementa los miembros de clase requeridos por al presionar ENTRAR y puede omitir
TestInterfaceel 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 aImplementationClasspara implementar , yEvent1Method1Prop1: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 PropertyLa
Implementsinstrucción nombra la interfaz y el miembro de interfaz que se están implementando.Complete la definición
Prop1de agregando un campo privado a la clase que almacena el valor de propiedad:' Holds the value of the property. Private pval As IntegerDevuelve el valor de de
pvalla propiedad get accessor.Return pvalEstablezca el valor de
pvalen el accessor de conjunto de propiedades.pval = valueComplete la definición de
Method1agregando 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 Explorador de soluciones y haga clic en Ver código. El editor muestra la clase para el formulario de inicio. De forma predeterminada, el formulario de inicio se denomina
Form1.Agregue el siguiente
testInstancecampo a la claseForm1:Dim WithEvents testInstance As TestInterfaceAl declarar como
testInstance, la clase puede controlar susWithEventsForm1eventos.Agregue el siguiente controlador de eventos a la
Form1clase para controlar los eventos que generatestInstance:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubAgregue una subrutina denominada
Testa la clase para probar la clase deForm1implementació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 SubEl procedimiento crea una instancia de la clase que implementa , asigna esa instancia al campo , establece una propiedad y ejecuta un método a través
TestMyInterfacede la interfaztestInstance.Agregue código para llamar al
Testprocedimiento desde el procedimiento del formulario deForm1 Loadinicio:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubEjecute el
Testprocedimiento 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 mostrará el mensaje "El controlador de eventos ha capturado el evento".