Compartir a través de


Un componente en Visual Basic

A continuación figura la lista completa de código fuente para el componente de cadena de ejemplo en Visual Basic:

Lista 1. Componente en Visual Basic (CompVB.vb)

Option Explicit
Option Strict

Imports System

Namespace CompVB

   Public Class StringComponent

      Private StringSet(3) As String

      Public Sub New()
         MyBase.New
         StringSet(0) = "Visual Basic String 0"
         StringSet(1) = "Visual Basic String 1"
         StringSet(2) = "Visual Basic String 2"
         StringSet(3) = "Visual Basic String 3"
      End Sub

      Public Function GetString(ByVal index as Integer) 
         As String
         If ((index < 0) or (index >= Count)) then
            throw new IndexOutOfRangeException
         End If
         GetString = StringSet(index)
      End Function

      ReadOnly Property Count() As Long
         Get
            Count = StringSet.Length
         End Get
      End Property

   End Class

End Namespace

Al igual que en el caso de Extensiones administradas de C++ y Visual C#, el espacio de nombres y el nombre de clase se especifican en código.

Dicho código presenta también la nueva instrucción Option Strict, que controla si las conversiones de tipo de variable son implícitas o explícitas. Las conversiones implícitas se pueden realizar sin ninguna sintaxis especial. Las conversiones explícitas, sin embargo, deben realizarse mediante los operadores de conversión. Si está activada esta opción, sólo se pueden realizar implícitamente las conversiones de ampliación; por ejemplo, de Integer a Double. La función Option Strict también se puede activar en tiempo de compilación mediante el modificador de compilación /optionstrict.

En Visual Basic, se asigna a un constructor de clases el nombre New en lugar del nombre de la clase como en los demás lenguajes. Dado que un constructor no devuelve ningún valor, se implementa en Visual Basic como Sub y no como Function:

Public Sub New()
...
End Sub

Observe asimismo esta instrucción:

MyBase.New

Esta instrucción, que es necesaria, llama al constructor de clases base. En C++ y Extensiones administradas de Visual C#, el compilador genera automáticamente la llamada al constructor de clases base.

Éste es el método GetString, que utiliza un entero y devuelve una cadena (En Visual Basic, una subrutina que devuelve un valor se denomina función):

Public Function GetString(ByVal index as Integer) 
      As String
   If ((index < 0) or (index >= Count)) then
      throw new IndexOutOfRangeException
   End If
   GetString = StringSet(index)
End Function

La instrucción throw en el método GetString resalta el nuevo control de excepciones basado en el tiempo de ejecución:

throw new IndexOutOfRangeException

Esta instrucción crea e inicia un nuevo objeto del tipo IndexOutOfRangeException.

**Nota   **En las versiones anteriores del motor de tiempo de ejecución de Visual Basic, se implementaba Err.

Por último, se crea la propiedad Count de sólo lectura:

ReadOnly Property Count() As Long
   Get
      Count = StringSet.Length
   End Get
End Property

La generación desde la línea de comandos es bastante sencilla. El único cambio consiste en escribir el componente en el subdirectorio ..\Bin relativo, tal y como se muestra a continuación:

vbc.exe /t:library /debug+ /optionstrict+  /out:..\bin\CompVB.dll CompVB.vb

Vea también

Cliente para los componentes simples | Resumen del turorial sobre el desarrollo | Apéndice A: Herramientas para explorar espacios de nombres