Поделиться через


Оператор Option Infer

Обновлен: Ноябрь 2007

Допускает использование локального определения типов при объявлении переменных.

Option Infer { On | Off }

Компоненты

  • On
    Необязательно. Допускает использование локального определения типов.

  • Off
    Необязательно. Не допускает использование локального определения типов.

Bb384665.alert_note(ru-ru,VS.90).gifПримечание.

Если не указать On или Off, то по умолчанию оно равно On для проектов, созданных в Visual Basic 2008. Для обновленных проектов более ранних версий по умолчанию используется Off.

Заметки

При установке свойству Option Infer значения On переменные можно объявлять без явного указания типа данных. Компилятор получает тип данных переменной из типа выражения, которое ее инициализирует. Например, если Option Infer и Option Strict отключены, то переменная в объявлении Dim someVar = 2 определяется только как объект.

IntelliSense при отключенных Option Infer и Option Strict
IntelliSense-просмотров объявления.

При установке свойству Option Infer значения On компилятор определяет someVar как Integer.

IntelliSense при включенном Option Infer
IntelliSense-просмотров объявления.

Затем компилятор может обнаружить несоответствия в использовании переменной в проекте, которое, в противном случае, может быть не распознано до запуска проекта. Идентификация someVar как Integer также позволяет интегрированной среде разработки (IDE) обеспечивать полную поддержку IntelliSense.

Bb384665.alert_note(ru-ru,VS.90).gifПримечание.

Если в коде или IDE не указано значение Option Infer, то компилятор по умолчанию использует Option Infer On для только что созданных проектов. Для обновленных проектов по умолчанию используется Option Infer Off.

Bb384665.alert_note(ru-ru,VS.90).gifПримечание.

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Установка Option Infer в файле

  • Введите Option Infer On или Option Infer Off в верхней части файла, перед любым другим исходным кодом. Если значение, заданное Option Infer в файле, конфликтует со значением, заданным в IDE или в командной строке, то значение в файле имеет приоритет.

Установка Option Infer в IDE для одного проекта

  1. Выберите проект в обозревателе решений.

  2. Откройте конструктор проектов, выбрав пункт Свойства меню Вид.

  3. На вкладке Компиляция в поле Option Infer выберите On или Off.

Установка значения по умолчанию для Option Infer в IDE

  1. В меню Сервис выберите пункт Параметры.

  2. Разверните узел Проекты и решения.

  3. Щелкните Параметры VB по умолчанию.

  4. В списке Option Infer выберите On или Off.

    Bb384665.alert_note(ru-ru,VS.90).gifПримечание.

    Если установить значение для Option Infer с помощью меню Сервис, то значение будет сохраняться для новых проектов до тех пор, пока не будет изменено.

Установка Option Infer в командной строке

  • Включите параметр компилятора /optioninfer в команду vbc.

Пример

В следующих примерах демонстрируется включение оператором Option Infer использования локального определения типов.

' 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

См. также

Основные понятия

Вывод локального типа

Ссылки

Оператор Dim (Visual Basic)

Оператор Option Compare

Оператор Option Explicit (Visual Basic)

Оператор Option Strict

Страница "Параметры Visual Basic по умолчанию", папка "Проекты", диалоговое окно "Параметры"

/optioninfer