Composant dans Visual Basic
Voici la liste de code source complète pour l'exemple de composant de chaîne dans Visual Basic :
Listing 1. Composant dans 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
Comme pour les extensions managées pour C++ et Visual C#, l'espace de noms et le nom de la classe sont spécifiés dans le code.
Ce code présente également la nouvelle instruction Option Strict, qui contrôle si les conversions de type variable sont implicites ou explicites. Les conversions implicites peuvent être effectuées sans syntaxe particulière. Les conversions explicites, par contre, doivent être effectuées à l'aide des opérateurs de cast. Si cette option est activée, seules les conversions étendues (par exemple, d'un Entier à un Double) peuvent être effectuées implicitement. La fonctionnalité Option Strict peut également être activée au moment de la compilation, à l'aide du commutateur de compilation /optionstrict+.
Dans Visual Basic, un constructeur de classe prend le nom New plutôt que le nom de la classe comme dans les autres langages. Étant donné qu'un constructeur ne retourne pas de valeur, il est implémenté dans Visual Basic en tant que Sub plutôt qu'en tant que **Function **:
Public Sub New()
...
End Sub
Notez également cette instruction :
MyBase.New
Cette instruction, qui est requise, appelle le constructeur de classe de base. Dans C++ et les extensions managées pour Visual C#, l'appel au constructeur de classe de base est automatiquement généré par le compilateur.
Voici la méthode GetString, qui prend un entier et retourne une chaîne (dans Visual Basic, une sous-routine qui renvoie une valeur est appelée une fonction) :
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'instruction throw dans la méthode GetString met en valeur la nouvelle gestion des exceptions basées sur le runtime :
throw new IndexOutOfRangeException
Cette instruction crée (et lève) un nouvel objet de type IndexOutOfRangeException.
**Remarque **Les versions précédentes du runtime Visual Basic implémentaient un Err.
Enfin, vous devez créer la propriété Count en lecture seule :
ReadOnly Property Count() As Long
Get
Count = StringSet.Length
End Get
End Property
Une création à partir de la ligne de commande est assez simple. La seule modification consiste à écrire le composant dans le sous-répertoire ..\Bin relatif, comme l'illustre le code suivant :
vbc.exe /t:library /debug+ /optionstrict+ /out:..\bin\CompVB.dll CompVB.vb
Voir aussi
Clients pour les composants simples | Résumé du didacticiel de développement | Annexe A : Outils pour l'exploration des espaces de noms