Visual Basic의 조건부 컴파일

조건부 컴파일에서 프로그램의 특정 코드 블록은 선택적으로 컴파일되지만 다른 블록은 무시됩니다.

예를 들어 여러 접근 방식의 속도를 동일한 프로그래밍 작업과 비교하는 디버깅 문을 작성하거나 여러 언어에 대한 애플리케이션을 지역화하고자 할 수 있습니다. 조건부 컴파일 문은 런타임이 아니라 컴파일 시간 동안 실행되도록 설계되었습니다.

#If...Then...#Else 지시문을 사용하여 조건부로 컴파일할 코드 블록을 나타냅니다. 예를 들어 동일한 소스 코드에서 동일한 애플리케이션의 프랑스어 및 독일어 버전을 만들려면 미리 정의된 상수 FrenchVersionGermanVersion(을)를 사용하여 플랫폼별 코드 세그먼트를 #If...Then 문에 포함합니다. 다음은 방법을 보여 주는 예제입니다.

#If FrenchVersion Then
   ' <code specific to the French language version>.
#ElseIf GermanVersion Then
   ' <code specific to the German language version>.
#Else
        ' <code specific to other versions>.
#End If

FrenchVersion 조건부 컴파일 상수의 값을 컴파일 시간에 True(으)로 설정하면 프랑스어 버전의 조건부 코드가 컴파일됩니다. 상수 GermanVersion의 값을 True(으)로 설정하는 경우, 컴파일러는 독일어 버전을 사용합니다. 둘 다 True(으)로 설정되지 않으면 마지막 Else 블록의 코드가 실행됩니다.

참고 항목

코드가 현재 분기의 일부가 아닌 경우 코드를 편집하고 조건부 컴파일 지시문을 사용하면 자동 완성이 작동하지 않습니다.

조건부 컴파일 상수 선언

조건부 컴파일 상수는 다음 세 가지 방법 중 하나로 설정할 수 있습니다.

  • 프로젝트 디자이너에서

  • 명령줄 컴파일러를 사용하는 경우 명령줄에서

  • 코드에서

조건부 컴파일 상수에는 특별한 범위가 있으며 표준 코드에서 액세스할 수 없습니다. 조건부 컴파일 상수의 범위는 설정 방법에 따라 달라집니다. 다음 표에서는 위에서 언급한 세 가지 방법을 각각 사용하여 선언된 상수의 범위를 나열합니다.

상수 설정 방법 상수 범위
프로젝트 디자이너 프로젝트의 모든 파일에 공개
명령줄 명령줄 컴파일러에 전달된 모든 파일에 공개
코드의 #Const 선언된 파일에 비공개
프로젝트 디자이너에서 상수를 설정하는 방법
- 실행 파일을 만들기 전에 프로젝트 및 솔루션 속성 관리에 제공된 단계에 따라 프로젝트 디자이너에서 상수를 설정합니다.
명령줄에서 상수를 설정하는 방법
- 다음 예제와 같이 -d 스위치를 사용하여 조건부 컴파일 상수 입력:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
-d 스위치와 첫 번째 상수 사이에는 공백이 필요하지 않습니다. 자세한 내용은 -debug(Visual Basic)를 참조하세요.
명령줄 선언은 프로젝트 디자이너에 입력된 선언을 재정의하지만 삭제하지는 않습니다. 프로젝트 디자이너에서 설정한 인수는 후속 컴파일에 계속 적용됩니다.
코드 자체에서 상수 작성 시 해당 범위는 선언된 전체 모듈이므로 배치에 대한 엄격한 규칙이 없습니다.
코드에서 상수를 설정하는 방법
- 상수가 사용되는 모듈의 선언 블록에 상수를 배치합니다. 이렇게 하면 코드를 구성하고 읽기 쉽게 유지할 수 있습니다.
제목 설명
프로그램 구조 및 코드 규칙 코드를 쉽게 읽고 유지 관리할 수 있도록 제안을 제공합니다.

참조

#Const 지시문

#If...Then...#Else 지시문

-define(Visual Basic)