Istruzione Option Infer

Aggiornamento: novembre 2007

Abilita l'utilizzo dell'inferenza del tipo di variabile locale nelle variabili dichiaranti.

Option Infer { On | Off }

Parti

  • On
    Facoltativo. Attiva l'ìnferenza dei tipi locali

  • Off
    Facoltativo. Disattiva l'ìnferenza dei tipi locali

Nota:

Se non si specifica On or Off, il valore predefinito è On per i progetti creati in Visual Basic 2008. Il valore predefinito è Off per i progetti aggiornati dalle versioni precedenti.

Note

Quando si imposta Option Infer su On, è possibile dichiarare variabili senza dichiarare in modo esplicito un tipo di dati. Tramite l'inferenza, il compilatore deriva il tipo di dati di una variabile dal tipo della relativa espressioni di inizializzazione. Ad esempio, con Option Infer e Option Strict disattivate, la variabile nella dichiarazione Dim someVar = 2 viene identificata solo come un oggetto.

IntelliSense quando Option Infer e Option Strict sono disattivati

Visualizzazione IntelliSense della dichiarazione

Quando si imposta Option Infer su On il compilatore identifica someVar come un Integer.

IntelliSense quando Option Infer è attivato

Visualizzazione IntelliSense della dichiarazione

In questo caso il compilatore può rilevare un uso incoerente della variabile nel progetto che in caso contrario non sarebbe stato riconosciuto fino a quando il progetto non fosse stato eseguito. L'identificazione di someVar come un Integer consente anche all'ambiente di sviluppo integrato (IDE) di fornire supporto IntelliSense completo.

Nota:

Se non si specifica un valore per Option Infer nel codice o nell'IDE, l'impostazione predefinita del compilatore per i progetti appena creati è Option Infer On. Il valore predefinito è Option Infer Off per i progetti aggiornati.

Nota:

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Per impostare Option Infer in un file

  • Digitare Option Infer On o Option Infer Off all'inizio del file, prima di qualsiasi altro codice sorgente. Se il valore impostato per Option Infer in un file è in conflitto con il valore impostato nell'IDE o sulla riga di comando, il valore nel file ha precedenza.

Per impostare Option Infer nell'IDE per un solo progetto

  1. Fare clic su un progetto in Esplora soluzioni.

  2. Aprire Progettazione progetti facendo clic su Pagine delle proprietà nel menu Visualizzazione.

  3. Nella scheda Compila nella casella Option Infer fare clic su On oppure Off.

Per impostare il valore predefinito per Option Infer nell'IDE

  1. Scegliere Opzioni dal menu Strumenti.

  2. Espandere il nodo Progetti e soluzioni.

  3. Fare clic su Impostazioni predefinite di Visual Basic.

  4. Nell'elenco Option Infer, fare clic su On o Off.

    Nota:

    Se si imposta il valore per Option Infer utilizzando il menu Strumenti, il valore rimarrà valido per i progetti successivi, a meno di modifiche.

Per impostare Option Infer nella riga di comando

  • Includere l'opzione del compilatore /optioninfer nel comando vbc.

Esempio

Negli esempi seguenti viene illustrato come l'istruzione Option Infer permette di utilizzare inferenza dei tipi locali.

' 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

Vedere anche

Concetti

Inferenza dei tipi locali

Riferimenti

Istruzione Dim (Visual Basic)

Istruzione Option Compare

Istruzione Option Explicit (Visual Basic)

Istruzione Option Strict

Impostazioni predefinite di Visual Basic, Progetti, finestra di dialogo Opzioni

/optioninfer