Compartir a través de


Tutorial: Creación e implementación de 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 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

  1. Abra un nuevo proyecto de aplicación windows de Visual Basic.

  2. Agregue un nuevo módulo al proyecto haciendo clic en Agregar módulo en el menú Proyecto .

  3. Asigne un nombre al nuevo módulo Module1.vb y haga clic en Agregar. Se muestra el código del nuevo módulo.

  4. Defina una interfaz denominada TestInterface dentro Module1 escribiendo Interface TestInterface entre las Module instrucciones y End Module y presionando 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.

  5. Defina una propiedad, un método y un evento para la interfaz colocando el código siguiente entre las Interface instrucciones y End 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

  1. Agregue una clase denominada ImplementationClass agregando la siguiente instrucción a Module1, después de la End Interface instrucción pero antes de la End 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.

  2. Agregue la siguiente Implements instrucción a ImplementationClass, 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.

  3. Si no está trabajando en el entorno de desarrollo integrado, debe implementar todos los miembros de la interfaz MyInterface. Agregue el siguiente código en 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 Implements instrucción asigna un nombre a la interfaz y al miembro de interfaz que se va a implementar.

  4. 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
    
  5. 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

  1. 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.

  2. Agregue el siguiente testInstance campo a la Form1 clase :

    Dim WithEvents testInstance As TestInterface
    

    Al declarar testInstance como WithEvents, la Form1 clase puede controlar sus eventos.

  3. Agregue el siguiente controlador de eventos a la Form1 clase para controlar los eventos generados por testInstance:

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Agregue una subrutina denominada Test a la Form1 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 implementa MyInterface, asigna esa instancia al testInstance campo, establece una propiedad y ejecuta un método a través de la interfaz .

  5. Agregue código para llamar al procedimiento Test desde el procedimiento Form1 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
    
  6. 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".

Consulte también