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