Option Infer, instruction

Mise à jour : novembre 2007

Active l'utilisation d'inférence de type local dans la déclaration de variables.

Option Infer { On | Off }

Éléments

  • On
    Facultatif. Active l'inférence de type local.

  • Off
    Facultatif. Désactive l'inférence de type local.

Remarque :

Si vous ne spécifiez pas On ou Off, la valeur par défaut est On pour les projets créés dans Visual Basic 2008. La valeur par défaut est Off pour les projets mis à niveau à partir de versions antérieures.

Notes

Lorsque vous affectez à Option Infer la valeur On, vous pouvez déclarer des variables sans déclarer explicitement un type de données. Le compilateur déduit le type de données d'une variable à partir du type de son expression d'initialisation. Par exemple, avec Option Infer et Option Strict désactivés, la variable dans le déclaration Dim someVar = 2 est identifiée uniquement en tant qu'objet.

IntelliSense lorsque Option Infer et Option Strict sont désactivés

Lorsque vous affectez à Option Infer la valeur On, le compilateur identifie someVar comme un Integer.

IntelliSense lorsque Option Infer est activé

Le compilateur peut ensuite détecter des incohérences dans l'utilisation de la variable dans votre projet qui sinon n'auraient pas été reconnues avant l'exécution du projet. L'identification de someVar comme un Integer permet également à l'environnement de développement intégré (IDE, Integrated Development Environment) de fournir une prise en charge complète d'IntelliSense.

Remarque :

Si vous ne spécifiez pas de valeur pour Option Infer dans votre code ou dans l'IDE, la valeur par défaut du compilateur est Option Infer On pour les projets créés récemment. La valeur par défaut est Option Infer Off pour les projets mis à niveau.

Remarque :

Il est possible que votre ordinateur affiche des noms ou des emplacements différents pour certains des éléments d'interface utilisateur Visual Studio dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour définir Option Infer dans un fichier

  • Tapez Option Infer On ou Option Infer Off en haut du fichier, avant tout autre code source. Si la valeur définie pour Option Infer dans un fichier est en conflit avec la valeur définie dans l'IDE ou sur la ligne de commande, la valeur dans le fichier est prioritaire.

Pour définir Option Infer dans l'IDE pour un projet unique

  1. Cliquez sur un projet dans l'Explorateur de solutions.

  2. Ouvrez le Concepteur de projets en cliquant sur Pages de propriétés dans le menu Affichage.

  3. Dans l'onglet Compilation, dans la zone Option Infer, cliquez sur On ou Off.

Pour définir la valeur par défaut pour Option Infer dans l'IDE

  1. Dans le menu Outils, cliquez sur Options.

  2. Développez le nœud Projets et solutions.

  3. Cliquez sur Valeurs par défaut VB.

  4. Dans la liste Option Infer, cliquez sur On ou Off.

    Remarque :

    Si vous définissez la valeur pour Option Infer en utilisant le menu Outils, la valeur persistera dans les projets suivants à moins de la modifier.

Pour définir Option Infer sur la ligne de commande

  • Incluez l'option du compilateur /optioninfer dans la commande vbc.

Exemple

Les exemples suivants expliquent comment l'instruction Option Infer active l'inférence de type local.

' 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

Voir aussi

Concepts

Inférence de type local

Référence

Dim, instruction (Visual Basic)

Option Compare, instruction

Option Explicit, instruction (Visual Basic)

Option Strict, instruction

Valeurs par défaut VB, Projets, boîte de dialogue Options

/optioninfer