다음을 통해 공유


Option Infer 문

업데이트: 2007년 11월

변수를 선언할 때 지역 형식 유추를 사용할 수 있습니다.

Option Infer { On | Off }

구성 요소

  • On
    선택적 요소. 지역 형식 유추를 사용합니다.

  • Off
    선택적 요소. 지역 형식 유추를 사용하지 않습니다.

참고:

On 또는 Off를 지정하지 않는 경우 기본값은 Visual Basic 2008에서 생성된 프로젝트에 대해 On입니다. 기본값은 이전 버전에서 업그레이드된 프로젝트에 대해 Off입니다.

설명

Option Infer를 On으로 설정하는 경우 데이터 형식을 명시적으로 선언하지 않고 변수를 선언할 수 있습니다. 컴파일러에서는 초기화 식의 형식에서 변수의 데이터 형식을 유추합니다. 예를 들어 Option Infer 및 Option Strict가 해제된 경우 선언 Dim someVar = 2의 변수는 개체로만 식별됩니다.

Option Infer 및 Option Strict가 해제된 경우의 IntelliSense

선언의 IntelliSense 보기

Option Infer를 On으로 설정한 경우 컴파일러는 someVar을 Integer로 식별합니다.

Option Infer가 설정된 경우의 IntelliSense

선언의 IntelliSense 보기

그런 다음 컴파일러는 프로젝트가 실행될 때까지 이전에는 인식될 수 없었던 프로젝트에서 변수의 사용에 불일치를 검색할 수 있습니다. someVar을 Integer로 식별하면 IDE(통합 개발 환경)에서 IntelliSense 기능을 완벽하게 지원합니다.

참고:

코드나 IDE에서 Option Infer의 값을 지정하지 않는 경우 컴파일러 기본값은 새로 생성된 프로젝트에 대해 Option Infer On입니다. 기본값은 업그레이드된 프로젝트에 대해 Option Infer Off입니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

파일에서 Option Infer를 설정하려면

  • 파일의 맨 위에, 다른 소스 코드 앞에 Option Infer On 또는 Option Infer Off를 입력합니다. 파일에서 Option Infer에 대해 설정한 값이 IDE 또는 명령줄에 설정된 값과 충돌하는 경우 파일의 값이 우선 순위를 갖습니다.

단일 프로젝트의 IDE에서 Option Infer를 설정하려면

  1. 솔루션 탐색기에서 프로젝트를 클릭합니다.

  2. 보기 메뉴에서 속성 페이지를 클릭하여 프로젝트 디자이너를 엽니다.

  3. 컴파일 탭의 Option Infer 상자에서 On 또는 Off를 클릭합니다.

IDE에서 Option Infer의 기본값을 설정하려면

  1. 도구 메뉴에서 옵션을 클릭합니다.

  2. 프로젝트 및 솔루션 노드를 확장합니다.

  3. VB 기본값을 클릭합니다.

  4. Option Infer 목록에서 On 또는 Off를 클릭합니다.

    참고:

    도구 메뉴를 사용하여 Option Infer의 값을 설정하는 경우 해당 값은 변경하지 않는 한 이후 프로젝트에서 유지됩니다.

명령줄에서 Option Infer를 설정하려면

  • vbc 명령에 /optioninfer 컴파일러 옵션을 포함합니다.

예제

다음 예제에서는 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 문

옵션 대화 상자, 프로젝트, VB 기본값

/optioninfer