Visual Basic 8.0

Eintrag zuletzt aktualisiert am: 20.12.2005

Die Sprache Visual Basic ist in der Version 8.0 Teil des .NET Framework 2.0.
Der offizielle Produktname ist "Visual Basic 2005" (nicht Visual Basic .NET 2005)

Visual Basic 2005 ist ein Alias für Visual Basic 8.0. Die Vorgängerversionen hießen noch "Visual Basic .NET 7.x". Microsoft folgt damit dem eigenen Trend, das ".NET" wieder aus allen Produktnamen zu entfernen. Dadurch kann man nun nicht mehr einfach das objektorientierte und .NET-basierte Visual Basic von dem nur teilweise objektorientierten und COM-basierten Visual Basic (bis Version 6.0) zu trennen.

Neuerungen in Visual Basic 8.0 an der Sprache gegenüber der Vorgängerversion 7.1:

  • Generics (Schlüsselwort "Of")
  • Operatorenüberladung (Schlüsselworte "Operator", "Widening" und "Narrowing")
  • Datentypen UShort, UInteger und ULong
  • Datentyp signed byte (SByte)
  • continue-Schlüsselwort, um eine Schleife vorzeitig fortzusetzen
  • Using-Block, der einen Aufruf der Methode Dispose() realisiert, wenn ein Objekt die Schnittstelle System.IDisposable implementiert.
  • Compiler-Warnung bei nicht initialisierten Variablen
  • IsNot-Operator zum Objektvergleich
  • XML-Code-Dokumentation
  • Partielle Klassen: Die Implementierung einer Klasse kann in mehrere Dateien aufgeteilt sein. Diese Funktion wird sowohl von Windows Forms als auch von Web Forms verwendet zur Trennung von Code und Layout.
  • gemischte Sichtbarkeit für Getter- und Setter-Routine bei Properties

Visual Basic holt weiter auf

Bereits in den Versionen 7.0 und 7.1 konnte sich die erweiterte Sprache Visual Basic mit dem im Rahmen von .NET neu entwickelten C# messen lassen. In einigen Bereichen, in denen C# bislang noch eine Nasenspitze voraus lag, setzt Visual Basic mit der Version 8.0 nach. Dabei ist an vorderster Stelle die Operatorüberladung zu nennen. Operatorüberladung erlaubt es, einem der unären oder binären Standardoperatoren (+, -, *, =, +, And, Or, Not etc.) bei der Verwendung mit beliebigen Klassen als Operatoren eine eigene Bedeutung zuzuweisen. In Listing 1 ist der Plus-Operator für die Addition eines Flug-Objekts zu einem Passagier-Objekt implementiert, wodurch eine elegante Flugbuchung möglich wird.

Auch die schon vorher in C# verfügbare XML-Code-Kommentierung ist nun in Visual Basic eingebaut. Nach einem dreifachen Häkchen - statt des üblichen einfachen Häkchens - gestattet Visual Basic 8.0 eine XML-Sprache, die der Compiler zusammen mit Assembly-Metadaten in eine XML-Datei parallel zum Kompilat ablegt (siehe ebenfalls Listing 1). Die XML-Datei kann der Entwickler zur Erstellung von technischen Dokumentationen verwenden. Entsprechende Werkzeuge zur Weiterverarbeitung der XML-Daten gibt es aber nicht von Microsoft, sondern nur von Drittanbietern (siehe [3]). Auch der using-Block, bei dem am Blockende automatisch die Dispose()-Methode der im Blockkopf deklarieren Variablen aufgerufen wird, ist nun in Visual Basic verfügbar.

Neu im Compiler von Visual Basic 2005 im Vergleich zu Visual Basic 7.x ist, dass er die Kompatibilität mit der Common Language Specification (CLS) überprüft und warnt, wenn man Typen (z.B. UInteger) verwendet, die nicht CLS-konform sind. Außerdem prüft der Visual Basic-Compiler nun genau wie der C#-Compiler, ob deklarierte Variablen überhaupt jemals verwendet werden und ob verwendete Variablen bereits initialisiert sind.

''' <summary>
''' Die Buchung eines Flug ist möglich mit dem Operator +.
''' <example>
''' Dim p As New de.WWWings.PassagierSystem.Passagier("Schwichtenberg", "Holger")
''' Dim f As New de.WWWings.Flug("100", "Essen/Mühlheim", "")
''' Dim b As de.WWWings.PassagierSystem.Buchung
''' b = f + p
''' </example>
''' </summary>
''' <param name="flug">Erster Operator ist ein Objekt vom Typ Flug.</param>
''' <param name="pass">Zweiter Operator ist ein Objekz vom Typ Passagier</param>
''' <returns>Das Ergebnis ist ein Flug-</returns>
''' <remarks></remarks>
Shared Operator +(ByVal Flug As Flug, ByVal Pass As de.WWWings.PassagierSystem.Passagier) As PassagierSystem.Buchung
Pass.Buchen(Flug)
Dim b As New PassagierSystem.Buchung(Flug, Pass)
Return b
End Operator
Listing 1: Operatorüberladung und XML-Code-Kommentare in Visual Basic 2005

Visual Basic 8.0 enthält weitere, im Vergleich zu den vorgenannten Punkten unwesentliche Neuerungen:
  • für die Datentypen SByte, UShort, UInteger und ULong gibt es nun eigene Schlüsselwörter. In .NET 1.x konnten diese Typen nur direkt aus der Klasssenbibliothek (z.B. System.UInt32) verwendet werden.
  • Das Konstrukt "not x is y" kann der Entwickler nun verkürzt als "x isNot y" schreiben.
  • Getter- und Setter-Routine bei Properties dürfen einen unterschiedliche Sichtbarkeit haben, z.B. darf der Getter Public sein und der Setter Private.
  • Mit dem continue-Schlüsselwort darf der Entwickler einen erneuten Schleifendurchlauf initiieren.


Original-Quelle (MS, PDC 2003):

Continue Statement
Visual Basic now supplies a Continue statement, which immediately skips to the next iteration of a Do, For, or While loop.

Default Instances
Visual Basic now allows you to refer to members of certain classes, such as Form1, by using the class name, instead of explicitly creating an instance of it.

IsNot Operator
Visual Basic now furnishes an IsNot operator, with which you can avoid using the Not and Is operators in an awkward order.

Using Statement
Visual Basic now offers a Using...End Using block to ensure disposal of a system resource when your code leaves the block for any reason.

Explicit Zero Lower Bound on an Array
Visual Basic now permits an array declaration to specify the lower bound (0) of each dimension along with the upper bound.

CLS Compliance Checking
Visual Basic now generates a warning for each line of code that contains any specification or operation that the Common Language Specification (CLS) does not support.

Properties with Mixed Access Levels
Visual Basic now allows you to declare a property with different access levels on its Get and Set procedures.

Unsigned Types
Visual Basic now supports unsigned integer data types (UShort, UInteger, and ULong) as well as the signed type SByte.

Operator Overloading
Visual Basic now allows you to define a standard operator (such as +, &, Not, or Mod) on a class or structure you have defined.

Hiding Designer-Generated Code
Visual Basic now provides a mechanism to hide sensitive or delicate code from the normal view of the integrated development environment (IDE).

Data Type Arguments
Visual Basic now supports data type arguments on classes, structures, interfaces, and procedures. A data type argument specifies at compilation time the data type of one of the elements in the class, structure, interface, or procedure.

Uninitialized Variable Checking
Visual Basic now generates a warning for each potentially uninitialized variable. A variable has this status if there is at least one possible execution path that does not assign any value to the variable before using it.