Sdílet prostřednictvím


Option Infer – příkaz

Umožňuje použití odvození místní typu v deklaraci proměnné.

Option Infer { On | Off }

Součásti

Termín

Definice

On

Volitelné.Umožňuje odvození místní typu.

Off

Volitelné.Zakáže odvození místní typu.

Poznámky

Chcete-li nastavit Option Infer v souboru, zadejte Option Infer On nebo Option Infer Off v horní části souboru, před jiné zdrojový kód.Je-li nastavena hodnota pro Option Infer v souboru konflikty s hodnotou v prostředí IDE nebo na příkazovém řádku, hodnota v konfiguračním souboru má přednost.

Pokud nastavíte Option Infer k On, místní proměnné můžete deklarovat bez explicitně s informacemi o tom datovým typem.Kompilátor odvodí datový typ pro proměnnou z typu jeho inicializace výrazu.

Na následujícím obrázku Option Infer zapnutý.Proměnné v deklaraci Dim someVar = 2 je deklarován jako celé číslo odvození typu.

Technologie IntelliSense při odvození možnost zapnuté

Zobrazení IntelliSense prohlášení.

Na následujícím obrázku Option Infer je vypnuta.Proměnné v deklaraci Dim someVar = 2 je deklarován jako Object podle odvození typu.V tomto příkladu možnost Strict je nastavena na vypnout na Stránka Kompilovat, návrhář projektu (Visual Basic).

Technologie IntelliSense, pokud možnost odvození je vypnuto

Zobrazení IntelliSense prohlášení.

[!POZNÁMKA]

Pokud je proměnná deklarována jako Object, typu běhu můžete změnit při spuštění programu.Visual Basicprovádí operace volá zabalení a rozbalení k převodu mezi Object a typ hodnoty, což usnadňuje provádění nižší.Informace o zabalení a rozbalení naleznete v tématu Specifikace jazyka Visual Basic.

Odvození typu se vztahuje na úrovni postupu a nevztahuje mimo proceduru v třídě, struktury, modulu nebo rozhraní.

Další informace naleznete v tématu Odvození místního typu (Visual Basic).

Při odvození možnost prohlášení není k dispozici

Pokud zdrojový kód neobsahuje Option Infer prohlášení, možnost odvození nastavení na Stránka Kompilovat, návrhář projektu (Visual Basic) se používá.Pokud je použit kompilátoru příkazového řádku, /optioninfer se používá možnost kompilátoru.

Chcete-li nastavena možnost odvození v integrovaném vývojovém prostředí

  1. V Průzkumníka řešení, vyberte projekt.Na projektu nabídky, klikněte na tlačítko vlastnosti.Další informace naleznete v tématu Introduction to the Project Designer.

  2. Klikněte na tlačítko zkompilovat karty.

  3. Nastavte hodnotu v možnost odvození pole.

Když vytvoříte nový projekt, možnost odvození nastavení na zkompilovat kartu je nastaven na možnost odvození nastavení v ve výchozím nastavení jazyka Visual Basic dialogového okna.Pro přístup k ve výchozím nastavení jazyka Visual Basic dialogovém na nástroje nabídky, klikněte na tlačítko možnosti.V možnosti dialogové okno rozbalte projekty a řešenía potom klikněte na tlačítko ve výchozím nastavení jazyka Visual Basic.Počáteční výchozí nastavení v výchozí nastavení jazyka Visual Basic je On.

Chcete-li nastavena možnost odvození na příkazovém řádku

  • Zahrnout /optioninfer možnosti kompilátoru v vbc příkazu.

Výchozí Data typů a hodnot

Následující tabulka popisuje výsledky různých kombinací určující datový typ a inicializátoru v Dim prohlášení.

Zadaný typ dat?

Inicializátoru zadán?

Příklad

Výsledek

Ne

Ne

Dim qty

Pokud Option Strict je vypnuto (výchozí), je proměnná nastavena na Nothing.

Pokud Option Strict je aktivní, dojde k chybě při kompilaci.

Ne

Ano

Dim qty = 5

Pokud Option Infer je na (výchozí), je inicializace typ proměnné přijímá data.Další informace naleznete v tématu Odvození místního typu (Visual Basic).

Pokud Option Infer je vypnuto a Option Strict je vypnuta, proměnné přebírá datový typ Object.

Pokud Option Infer je vypnuto a Option Strict je aktivní, dojde k chybě při kompilaci.

Ano

Ne

Dim qty As Integer

Proměnná je inicializován na výchozí hodnotu pro datový typ.Další informace naleznete v tématu Dim – příkaz (Visual Basic).

Ano

Ano

Dim qty As Integer = 5

Pokud datový typ je inicializace není převést na zadaný datový typ, dojde k chybě při kompilaci.

Příklad

Následující příklady ukazují, jak Option Infer umožňuje prohlášení odvození místní typu.

' 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 

' Variable item is a string. 
Dim lst As New List(Of String) From {"abc", "def", "ghi"}

For Each item In lst
    Console.WriteLine(item)
Next 

' Variable namedCust is an instance of the Customer class. 
Dim namedCust = New Customer With {.Name = "Blue Yonder Airlines",
                                   .City = "Snoqualmie"}

' Variable product is an instance of an anonymous type. 
Dim product = New With {Key .Name = "paperclips", .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

Následující příklad ukazuje, že typu běhu se může lišit při proměnnou, je označena jako Object.

' Disable Option Infer when trying this example. 

Dim someVar = 5
Console.WriteLine(someVar.GetType.ToString)

' If Option Infer is instead enabled, the following 
' statement causes a run-time error. This is because 
' someVar was implicitly defined as an integer.
someVar = "abc"
Console.WriteLine(someVar.GetType.ToString)

' Output: 
'  System.Int32 
'  System.String

Viz také

Referenční dokumentace

Dim – příkaz (Visual Basic)

Option Compare – příkaz

Option Explicit – příkaz (Visual Basic)

Option Strict – příkaz

Výchozí možnosti jazyka Visual Basic, projekty, dialogové okno Možnosti

/optioninfer

Zabalení a rozbalení (Průvodce programováním v C#)

Koncepty

Odvození místního typu (Visual Basic)