Freigeben über


Option Infer-Anweisung

Aktualisiert: November 2007

Ermöglicht den lokalen Typrückschluss beim Deklarieren von Variablen.

Option Infer { On | Off }

Bestandteile

  • On
    Optional. Aktiviert den lokalen Typrückschluss.

  • Off
    Optional. Deaktiviert den lokalen Typrückschluss.

Hinweis:

Wenn weder On noch Off festgelegt wird, ist die Standardeinstellung für in Visual Basic 2008 erstellte Projekte On. Bei Projekten, die von früheren Versionen aktualisiert wurden, ist die Standardeinstellung Off.

Hinweise

Wenn Sie Option Infer auf On festlegen, können Sie Variablen deklarieren, ohne explizit einen Datentyp anzugeben. Der Compiler leitet den Datentyp einer Variablen vom Typ des Initialisierungsausdrucks ab. Wenn beispielsweise Option Infer und Option Strict deaktiviert sind, wird die Variable in der Deklaration Dim someVar = 2 nur als Objekt erkannt.

IntelliSense, wenn Option Infer und Option Strict deaktiviert sind.

Wenn Sie Option Infer auf On festlegen, wird someVar vom Compiler als Integer erkannt.

IntelliSense, wenn Option Infer aktiviert ist.

Der Compiler erkennt bei der Verwendung der Variablen in Ihrem Projekt Inkonsistenzen, die andernfalls erst beim Ausführen des Projekts erkannt würden. Durch die Erkennung von someVar als Integer bietet die integrierte Entwicklungsumgebung (Integrated Development Environment – IDE) außerdem vollständige IntelliSense-Unterstützung.

Hinweis:

Wenn Sie in Ihrem Code oder in der IDE keinen Wert für Option Infer festlegen, ist die Standardeinstellung des Compilers für neu erstellte Projekte Option Infer On. Der Standard für aktualisierte Projekte ist Option Infer Off.

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So legen Sie Option Infer in einer Datei fest

  • Geben Sie am Anfang der Datei Option Infer On oder Option Infer Off ein, bevor weiterer Quellcode folgt. Wenn der für Option Infer in einer Datei festgelegte Wert dem in der IDE oder auf der Befehlszeile festgelegten Wert widerspricht, hat der Wert in der Datei Vorrang.

So legen Sie Option Infer in der IDE für ein einzelnes Projekt fest

  1. Klicken Sie im Projektmappen-Explorer auf ein Projekt.

  2. Öffnen Sie den Projekt-Designer, indem Sie im Menü Ansicht auf Eigenschaftenseiten klicken.

  3. Klicken Sie auf der Registerkarte Kompilieren im Feld Option Infer entweder auf On oder auf Off.

So legen Sie den Standardwert für Option Infer in der IDE fest

  1. Klicken Sie im Menü Extras auf Optionen.

  2. Erweitern Sie den Knoten Projekte und Projektmappen.

  3. Klicken Sie auf VB-Standard.

  4. Klicken Sie in der Liste Option Infer auf On oder Off.

    Hinweis:

    Wenn Sie den Wert für Option Infer über das Menü Extras festlegen, bleibt dieser für spätere Projekte bestehen, bis er geändert wird.

So legen Sie Option Infer in der Befehlszeile fest

  • Fügen Sie die /optioninfer-Compileroption in den vbc-Befehl ein.

Beispiel

In den folgenden Beispielen wird veranschaulicht, wie die Option Infer-Anweisung den lokalen Typrückschluss ermöglicht.

' Enable Option Infer before trying these examples.

' Variable num is an Integer.
Dim num = 5

' Variable dbl is a Double.
Dim dbl = 4.113

' Variable str is a String.
Dim str = "abc"

' Variable pList is an array of Process objects.
Dim pList = Process.GetProcesses()

' Variable i is an Integer.
For i = 1 To 10
    Console.WriteLine(i)
Next

' If CustomerList is a list of Customer objects,
' variable cust is an instance of the Customer class.
For Each cust In CustomerList
    Console.WriteLine(cust.Name)
Next

' Variable namedCust is an instance of the Customer class.
Dim namedCust = New Customer With {.Name = "Lance Tucker", _
                                   .City = "Seattle"}

' Variable product is an instance of an anonymous type.
Dim product = New With {Key .Name = "paperclips", Key .Price = 1.29}

' If customers is a collection of Customer objects in the following 
' query, the inferred type of cust is Customer, and the inferred type
' of custs is IEnumerable(Of Customer).
Dim custs = From cust In customers _
            Where cust.City = "Seattle" _
            Select cust.Name, cust.ID

Siehe auch

Konzepte

Lokaler Typrückschluss

Referenz

Dim-Anweisung (Visual Basic)

Option Compare-Anweisung

Option Explicit-Anweisung (Visual Basic)

Option Strict-Anweisung

VB-Standard, Projekte, Dialogfeld "Optionen"

/optioninfer