다음을 통해 공유


Visual Basic의 조건부 컴파일

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

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

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

#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

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

비고

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

조건부 컴파일 상수 선언

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

  • 프로젝트 디자이너에서

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

  • 코드에서

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

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

참고 문헌

#Const 지시문

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

-define(Visual Basic)