Freigeben über


Eine Komponente in Visual Basic

Dies ist die vollständige Auflistung des Quellcodes für die Beispielzeichenfolgenkomponente in Visual Basic:

Auflistung 1. Komponente 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

Wie in Managed Extensions for C++ und Visual C# werden sowohl der Namespace als auch der Klassenname in Code angegeben.

Mit diesem Code wird auch die neue Option Strict-Anweisung eingeführt, die steuert, ob Variablentypkonvertierungen implizit oder explizit sind. Implizite Konvertierungen können ohne besondere Syntax ausgeführt werden. Explizite Konvertierungen müssen hingegen unter Verwendung der Umwandlungsoperatoren ausgeführt werden. Wenn diese Option aktiviert wird, können nur erweiternde Konvertierungen (z. B. von Integer in Double) implizit ausgeführt werden. Die Option Strict-Funktionalität kann ebenfalls während der Kompilierung aktiviert werden, indem der Compilerschalter /optionstrict+ verwendet wird.

In Visual Basic wird einem Konstruktor der Name New, und nicht wie in anderen Sprachen der Name der Klasse zugewiesen. Da ein Konstruktor keinen Wert zurückgibt, wird er in Visual Basic als Sub und nicht als Function implementiert:

Public Sub New()
...
End Sub

Betrachten wir die folgende Anweisung:

MyBase.New

Diese Anweisung, die obligatorisch ist, ruft den Basisklassenkonstruktor auf. In Visual C# und Managed Extensions for C++ wird der Aufruf des Basisklassenkonstruktors automatisch durch den Compiler erzeugt.

Im Folgenden ist die GetString-Methode dargestellt, die eine Ganzzahl annimmt und eine Zeichenfolge zurückgibt. (In Visual Basic wird eine Unterroutine, die einen Wert zurückgibt, als Funktion bezeichnet.)

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

Die throw-Anweisung in der GetString-Methode kennzeichnet die neue laufzeitbasierte Ausnahmebehandlung:

throw new IndexOutOfRangeException

Diese Anweisung erstellt ein neues Objekt des Typs IndexOutOfRangeException (und löst es aus).

**Hinweis   **In vorherigen Versionen der Visual Basic-Laufzeit wurde Err implementiert.

Abschließend erstellen Sie die schreibgeschützte Count-Eigenschaft:

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

Das Erstellen über die Befehlszeile ist verhältnismäßig einfach. Die einzige vorzunehmende Änderung ist das Schreiben der Komponente in das entsprechende ..\Bin-Unterverzeichnis (siehe unten):

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

Siehe auch

Clients für die einfachen Komponenten | Zusammenfassung des Lernprogramms für Entwicklung | Anhang A: Tools zum Durchsuchen von Namespaces