Per Mausklick bewerten und Feedback geben
MSDN
MSDN Library
Entwicklerbibliothek
Visual Studio .NET
Visual Basic .NET
 Option Explicit und Option Strict p...
Option Explicit und Option Strict per Vorlage
Veröffentlicht: 11. Aug 2003 | Aktualisiert: 28. Jun 2004
Von Mathias Schiffer

Dieser MSDN Quickie zeigt Ihnen, wie Sie unter Visual Basic .NET die Compilerdirektiven "Option Explicit" und "Option Strict" granular und dennoch standardisiert verwenden können, ohne jeweils in Tipparbeit zu verfallen.

Wer von Visual Basic 6.0 auf Visual Basic .NET umstieg, wird vielleicht spontan vermisst haben, was jeder erfahrene Visual Basic-Entwickler nach einer Neuinstallation von Visual Basic 6.0 als erstes tat: Im Optionendialog entfernte man das Häkchen des Menüpunkts "Automatische Syntaxüberprüfung" und setzte das fehlende Häkchen an den Menüpunkt "Variablendeklaration erforderlich".

Glücklicherweise ist dies mit Visual Basic .NET nicht mehr nötig: Der Menüpunkt "Variablendeklaration erforderlich", der unter Visual Basic 6.0 dafür sorgte, dass in neu eingefügte Module automatisch "Option Explicit" als erste Zeile eingefügt wurde, hat nicht überlebt. Denn unter Visual Basic .NET ist die Deklaration sämtlicher verwendeter Variablen standardmäßig obligatorisch. Wo es Ihnen sinnvoll erscheint können Sie dieses Standardverhalten ändern, indem Sie "Option Explicit Off" in ein Modul einfügen. Bitte gehen Sie mit dieser Möglichkeit aber äußerst sparsam um - noch besser: Vergessen Sie, was Sie darüber gerade gelesen haben.

Seit Visual Basic .NET 2003 können Sie im entsprechenden Optionsdialog dieses Standardverhalten abändern - allerdings verhilft Ihnen diese Einstellung nicht wie unter Visual Basic 6.0 zu einer automatischen Einfügung entsprechender Direktiven in neue Module Ihres Sourcecodes. Sie gelten stattdessen ohne Zusammenhang zu Ihren jeweiligen Anwendungen als generelle Compilerdirektiven.

OptionExplicit.gif

Abbildung 1: Optionsdialog ab Visual Studio .NET 2003

Etwas großzügiger waren die Väter von Visual Basic .NET mit der Voreinstellung für "Option Strict", die standardmäßig deaktiviert ist. Aktiviert bewirkt diese Option, dass Zuweisungen zwischen zwei verschiedenen Datentypen nur dann klaglos akzeptiert werden, wenn auch rein theoretisch keine Möglichkeit eines Datenverlusts durch die Zuweisung entstehen kann. Andernfalls müssen Sie in Ihrem Code die zugehörigen Typwandlungsfunktionen ausdrücklich verwenden, um "Option Strict On" zu besiegen.

Doch nicht nur dies überwacht "Option Strict" - auch "Late Bindung" ist mit eingeschaltetem "Option Strict" nicht mehr möglich (was nicht mehr als nur folgerichtig ist). Insofern erscheint es durchaus gerechtfertigt, dass der Standardwert für "Option Strict" nicht das "On", sondern das "Off" ist. Die Frage, ob "Option Strict" nicht auch anders sinnvoll implementierbar gewesen wäre, können wir dabei getrost hinter uns lassen - diese Designentscheidung aus Redmond gehört bereits seit geraumer Zeit der Vergangenheit an.

Fassen wir kurz zusammen: In Visual Basic .NET 2002 gilt generell "Option Explicit On", wenn Sie in Ihrem Sourcecode nicht explizit "Option Explicit Off" verwenden. Ebenso gilt hier generell "Option Strict Off", wenn Sie nicht explizit "Option Strict On" verwenden. In Visual Basic .NET 2003 können Sie hingegen ein nicht explizit angegebenes Verhalten im Optionsdialog definieren, wobei die Standardeinstellungen dem Verhalten von Visual Basic .NET 2002 entsprechen.

Individuelle Standardeinstellungen durch Vorlagenänderung
Projektdateien, die Sie Ihren Visual Basic .NET Lösungen hinzufügen, bezieht Visual Studio .NET aus dem VS .NET-Verzeichnis \VB7\VBWIZARDS. In diesem Verzeichnis finden Sie mannigfaltige Unterverzeichnisse für die verschiedensten Projekttypen, die Visual Studio .NET anbietet.

Egal, ob Sie mit Visual Basic .NET 2002 oder 2003 arbeiten: In diesem Verzeichnis können Sie mithilfe eines einfachen Texteditors (etwa notepad.exe) Abhilfe schaffen, indem Sie die entsprechenden Vorlagendateien verändern, die Sie hier vorfinden.

So können Sie etwa für Windows-Anwendungen projektweite Vorgaben festlegen: Öffnen Sie im Unterverzeichnis WindowsApplication die Datei WindowsApplication.vbproj in Ihrem Text-Editor. Die Datei beginnt üblicherweise wie folgt:

<VisualStudioProject> 
 <VisualBasic> 
  <Build> 
   <Settings  
 OutputType = "WinExe" 
   > 
...

Durch eine kleine Ergänzung des Settings-Abschnitts können Sie nun das Standardverhalten von Windows-Anwendungen festlegen, indem Sie die Angaben "OptionExplicit" und "OptionStrict" jeweils mit den Werten "On" oder "Off" ergänzen:

<VisualStudioProject> 
 <VisualBasic> 
  <Build> 
   <Settings  
 OutputType = "WinExe" 
 OptionExplicit= "On" 
 OptionStrict = "On" 
   > 
...

Sie können aber auch granularer Vorgaben etablieren. Bleiben wir beim Beispiel WindowsApplication: Öffnen Sie in Ihrem Texteditor beispielsweise die Datei Form.vb. Die Datei beginnt wie folgt:

Public Class [!output SAFE_ITEM_NAME] 
 Inherits System.Windows.Forms.Form 
...

Hier können Sie nun einfach "Option Explicit" und "Option Strict" nach Belieben als erste Zeilen einsetzen - fügen Sie später in der Entwicklungsumgebung eine Form zu Ihrem Projekt hinzu, werden diese Angaben dort wie selbstverständlich aufgeführt.

Auch hierzu soll ein konkretes Beispiel für eine solche Änderungsmöglichkeit nicht fehlen:

Option Explicit On 
Option Strict On 
Public Class [!output SAFE_ITEM_NAME] 
 Inherits System.Windows.Forms.Form 
...

Einen kleinen Nachteil hat dieses Vorgehen sicherlich: Im Verzeichnis \VB7\VBWIZARDS\ finden sich eine ganze Menge an Projekttypen und zugehörigen Dateien. Die aufgezeigten Änderungen müssen Sie an jeder einzelnen Projektvorlage vornehmen, bei der Sie diese Vorgaben im Umgang mit der Entwicklungsumgebung bei der täglichen Arbeit gesichert sehen wollen. Glücklicherweise handelt es sich dabei aber um nur einmalig notwendige Arbeiten, die sich schon nach kürzester Zeit auszahlen.

Wie Sie sehen, sind Sie trotz des Verlusts der automatischen Einfügungen wie unter Visual Basic 6.0 auch unter Visual Basic .NET nicht machtlos, wenn es um explizite und dennoch komfortable Programmierung geht. Nutzen Sie diese Möglichkeiten!


© 2012 Microsoft. Alle Rechte vorbehalten. Nutzungsbedingungen | Markenzeichen | Informationen zur Datensicherheit
Page view tracker