조건부 컴파일에서 프로그램의 특정 코드 블록은 선택적으로 컴파일되지만 다른 블록은 무시됩니다.
예를 들어 여러 접근 방식의 속도를 동일한 프로그래밍 작업과 비교하는 디버깅 문을 작성하거나 여러 언어에 대한 애플리케이션을 지역화할 수 있습니다. 조건부 컴파일 문은 런타임이 아니라 컴파일 시간 동안 실행되도록 설계되었습니다.
지시문 #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
조건부 컴파일 상수 FrenchVersion
의 True
값을 컴파일 시간에 설정하면 프랑스어 버전의 조건부 코드가 컴파일됩니다. 상수 GermanVersion
값을 True
설정하는 경우 컴파일러는 독일어 버전을 사용합니다.
True
둘 다 설정되어 있지 않으면, 마지막 Else
블록의 코드가 실행됩니다.
비고
코드가 현재 분기의 일부가 아닌 경우 코드를 편집하고 조건부 컴파일 지시문을 사용할 때 자동 완성이 작동하지 않습니다.
조건부 컴파일 상수 선언
조건부 컴파일 상수는 다음 세 가지 방법 중 하나로 설정할 수 있습니다.
프로젝트 디자이너에서
명령줄 컴파일러를 사용하는 경우 명령줄에서
코드에서
조건부 컴파일 상수에는 특별한 범위가 있으며 표준 코드에서 액세스할 수 없습니다. 조건부 컴파일 상수의 범위는 설정 방법에 따라 달라집니다. 다음 표에서는 위에서 언급한 세 가지 방법을 각각 사용하여 선언된 상수의 범위를 나열합니다.
상수 설정 방법 | 상수 범위 |
---|---|
프로젝트 디자이너 | 프로젝트의 모든 파일에 공개 |
명령줄 | 명령줄 컴파일러에 전달된 모든 파일에 공용 |
#Const 코드 내 문장 |
선언된 파일에 대한 프라이빗 |
프로젝트 디자이너에서 상수 설정 |
---|
- 실행 파일을 만들기 전에 프로젝트 및 솔루션 속성 관리에 제공된 단계에 따라 프로젝트 디자이너에서 상수 설정 |
명령줄에서 상수 설정 |
---|
- 다음 예제와 같이 -d 스위치를 사용하여 조건부 컴파일 상수 입력:vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0 -d 스위치와 첫 번째 상수 사이에 공백이 필요하지 않습니다. 자세한 내용은 -define(Visual Basic)를 참조하세요. 명령줄 선언은 프로젝트 디자이너에 입력된 선언을 재정의하지만 삭제하지는 않습니다. 프로젝트 디자이너에서 설정한 인수는 후속 컴파일에 계속 적용됩니다. 코드 자체에서 상수 작성 시 해당 범위는 선언된 전체 모듈이므로 배치에 대한 엄격한 규칙이 없습니다. |
코드에서 상수 설정 |
---|
- 상수가 사용되는 모듈의 선언 블록에 상수 배치 이렇게 하면 코드를 구성하고 읽기 쉽게 유지할 수 있습니다. |
관련 항목
제목 | 설명 |
---|---|
프로그램 구조 및 코드 규칙 | 코드를 쉽게 읽고 유지 관리할 수 있도록 제안합니다. |
참고 문헌
.NET