Un componente in Visual Basic
Di seguito è riportato il listato completo del codice sorgente relativo al componente stringa di esempio in Visual Basic:
Listato 1. Componente in 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
Analogamente a quanto accade nelle estensioni gestite per C++ e in Visual C#, sia lo spazio dei nomi che il nome della classe sono specificati nel codice.
Questo codice inoltre illustra la nuova istruzione Option Strict che controlla se le conversioni tra tipi di variabili sono implicite o esplicite. Le conversioni implicite non richiedono alcuna sintassi particolare. Per l'esecuzione di conversioni esplicite, invece, è necessario utilizzare gli operatori di cast. Quando questa opzione è attiva è possibile eseguire in maniera implicita solo conversioni di ampliamento, quale ad esempio la conversione da un valore Integer a un valore Double. La funzionalità Option Strict inoltre può essere attivata in fase di compilazione, utilizzando l'opzione di compilazione /optionstrict+.
In Visual Basic al costruttore di una classe viene dato il nome New, a differenza di quanto avviene negli altri linguaggi dove viene assegnato il nome della classe. Poiché un costruttore non restituisce un valore, in Visual Basic viene implementato come oggetto Sub e non come oggetto Function:
Public Sub New()
...
End Sub
Verrà ora presa in considerazione l'istruzione seguente:
MyBase.New
Questa istruzione è obbligatoria e consente di chiamare il costruttore della classe base. In C++ e nelle estensioni gestite per Visual C# la chiamata al costruttore della classe base è generata automaticamente dal compilatore.
Nel codice riportato di seguito si illustra il metodo GetString, che accetta un valore integer e restituisce una stringa. In Visual Basic una subroutine che restituisce un valore prende il nome di funzione.
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
L'istruzione throw utilizzata nel metodo GetString evidenzia la nuova gestione delle eccezioni basata su runtime:
throw new IndexOutOfRangeException
Questa dichiarazione consente di creare e generare un nuovo oggetto di tipo IndexOutOfRangeException.
**Nota **Nelle versioni precedenti di Visual Basic veniva implementato un oggetto Err.
Infine, viene creata la proprietà Count di sola lettura:
ReadOnly Property Count() As Long
Get
Count = StringSet.Length
End Get
End Property
La generazione dalla riga di comando è piuttosto semplice. L'unica differenza è rappresentata dalla scrittura del componente nella sottodirectory relativa ..\Bin, come illustrato nella seguente stringa:
vbc.exe /t:library /debug+ /optionstrict+ /out:..\bin\CompVB.dll CompVB.vb
Vedere anche
Client per i componenti semplici | Riepilogo dell'esercitazione di sviluppo | Appendice A: strumenti per l'esplorazione degli spazi dei nomi