Visual Basic의 조건부 컴파일Conditional Compilation in Visual Basic

조건부 컴파일에서프로그램의 특정 코드 블록은 선택적으로 컴파일되고 다른 항목은 무시 됩니다.In conditional compilation, particular blocks of code in a program are compiled selectively while others are ignored.

예를 들어 서로 다른 방법의 속도와 동일한 프로그래밍 작업을 비교 하는 디버깅 문을 작성 하거나 응용 프로그램에서 여러 언어를 지역화할 수 있습니다.For example, you may want to write debugging statements that compare the speed of different approaches to the same programming task, or you may want to localize an application for multiple languages. 조건부 컴파일 문은 런타임에 실행 되지 않고 컴파일 시간에 실행 되도록 설계 되었습니다.Conditional compilation statements are designed to run during compile time, not at run time.

지시문을 사용 하 여 조건부로 컴파일되는 코드 블록을 나타냅니다 #If...Then...#Else .You denote blocks of code to be conditionally compiled with the #If...Then...#Else directive. 예를 들어 동일한 소스 코드에서 프랑스어 및 독일어 버전의 동일한 응용 프로그램을 만들려면 #If...Then 미리 정의 된 상수 및를 사용 하 여 문에 플랫폼별 코드 세그먼트를 포함 FrenchVersion GermanVersion 합니다.For example, to create French- and German-language versions of the same application from the same source code, you embed platform-specific code segments in #If...Then statements using the predefined constants FrenchVersion and GermanVersion. 다음 예에서는 방법을 보여 줍니다.The following example demonstrates how:

#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 프랑스어 버전의 조건부 코드가 컴파일됩니다.If you set the value of the FrenchVersion conditional compilation constant to True at compile time, the conditional code for the French version is compiled. 상수 값을로 설정 하는 경우 GermanVersion True 컴파일러는 독일어 버전을 사용 합니다.If you set the value of the GermanVersion constant to True, the compiler uses the German version. 둘 다로 설정 하지 않으면 True 마지막 블록의 코드가 Else 실행 됩니다.If neither is set to True, the code in the last Else block runs.

참고

코드를 편집 하 고 코드를 현재 분기에 포함 하지 않는 경우 조건부 컴파일 지시문을 사용 하면 자동 완성이 작동 하지 않습니다.Autocompletion will not function when editing code and using conditional compilation directives if the code is not part of the current branch.

조건부 컴파일 상수 선언Declaring Conditional Compilation Constants

다음 세 가지 방법 중 하나로 조건부 컴파일 상수를 설정할 수 있습니다.You can set conditional compilation constants in one of three ways:

  • 프로젝트 디자이너 에서In the Project Designer

  • 명령줄 컴파일러를 사용 하는 경우 명령줄에서At the command line when using the command-line compiler

  • 코드에서In your code

조건부 컴파일 상수는 특수 한 범위를 가지 며 표준 코드에서 액세스할 수 없습니다.Conditional compilation constants have a special scope and cannot be accessed from standard code. 조건부 컴파일 상수의 범위는 설정 된 방식에 따라 달라 집니다.The scope of a conditional compilation constant is dependent on the way it is set. 다음 표에서는 위에 설명 된 세 가지 방법을 사용 하 여 선언 된 상수 범위를 나열 합니다.The following table lists the scope of constants declared using each of the three ways mentioned above.

상수 설정 방법How constant is set 상수 범위Scope of constant
프로젝트 디자이너Project Designer 프로젝트의 모든 파일에 공개Public to all files in the project
명령줄Command line 명령줄 컴파일러에 전달 된 모든 파일에 공용Public to all files passed to the command-line compiler
#Const 코드의 문#Const statement in code 선언 된 파일 전용Private to the file in which it is declared
프로젝트 디자이너에서 상수를 설정 하려면To set constants in the Project Designer
-실행 파일을 만들기 전에 프로젝트 디자이너 에서 프로젝트 및 솔루션 속성 관리에 제공 된 단계에 따라 상수를 설정 합니다.- Before creating your executable file, set constants in the Project Designer by following the steps provided in Managing Project and Solution Properties.
명령줄에서 상수를 설정 하려면To set constants at the command line
-다음 예제와 같이- d 스위치를 사용 하 여 조건부 컴파일 상수를 입력 합니다.- Use the -d switch to enter conditional compilation constants, as in the following example:
vbc MyProj.vb /d:conFrenchVersion=–1:conANSI=0
-D 스위치와 첫 번째 상수 사이에는 공간이 필요 하지 않습니다.No space is required between the -d switch and the first constant. 자세한 내용은 -define (Visual Basic)을 참조 하세요.For more information, see -define (Visual Basic).
명령줄 선언은 프로젝트 디자이너에 입력 된 선언을 재정의 하지만이를 지우지 않습니다.Command-line declarations override declarations entered in the Project Designer, but do not erase them. 프로젝트 디자이너 에 설정 되는 인수는 후속 컴파일에서 적용 됩니다.Arguments set in Project Designer remain in effect for subsequent compilations.
코드 자체에서 상수를 작성 하는 경우 해당 범위는 선언 된 전체 모듈 이므로 배치에 대 한 엄격한 규칙이 없습니다.When writing constants in the code itself, there are no strict rules as to their placement, since their scope is the entire module in which they are declared.
코드에서 상수를 설정 하려면To set constants in your code
-상수를 사용 되는 모듈의 선언 블록에 추가 합니다.- Place the constants in the declaration block of the module in which they are used. 이렇게 하면 코드를 구성 하 고 읽기 쉽게 유지할 수 있습니다.This helps keep your code organized and easier to read.
제목Title 설명Description
프로그램 구조 및 코드 규칙Program Structure and Code Conventions 코드를 쉽게 읽고 유지 관리할 수 있는 제안 사항을 제공 합니다.Provides suggestions for making your code easy to read and maintain.

참조Reference

#Const 지시문#Const Directive

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

-define(Visual Basic)-define (Visual Basic)