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
Cliquez sur un projet dans l'Explorateur de solutions.
Ouvrez le Concepteur de projets en cliquant sur Pages de propriétés dans le menu Affichage.
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
Dans le menu Outils, cliquez sur Options.
Développez le nœud Projets et solutions.
Cliquez sur Valeurs par défaut VB.
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
Référence
Dim, instruction (Visual Basic)
Option Explicit, instruction (Visual Basic)