Partager via


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