다음을 통해 공유


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

선택한 Visual Basic 코드 블록을 조건부로 컴파일합니다.

구문

#If expression Then
   statements
[ #ElseIf expression Then
   [ statements ]
...
#ElseIf expression Then
   [ statements ] ]
[ #Else
   [ statements ] ]
#End If

부분

expression
#If#ElseIf 문에는 필수이고 다른 곳에서는 선택 사항입니다. 하나 이상의 조건부 컴파일러 상수, 리터럴 및 연산자로만 구성된 식으로, True 또는 False로 평가됩니다.

statements
#If 문 블록에는 필수이고 다른 곳에서는 선택 사항입니다. 연관된 식이 True로 평가되는 경우 컴파일되는 Visual Basic 프로그램 라인 또는 컴파일러 지시문입니다.

#End If
#If 문 블록을 종료합니다.

설명

표면적으로는 #If...Then...#Else 지시문의 동작이 If...Then...Else 문의 동작과 동일하게 나타납니다. 그러나 #If...Then...#Else 지시문은 컴파일러가 컴파일한 내용을 평가하는 반면, If...Then...Else 문은 런타임 시 조건을 평가합니다.

조건부 컴파일은 일반적으로 서로 다른 플랫폼에 대해 동일한 프로그램을 컴파일하는 데 사용됩니다. 또한 실행 파일에 디버깅 코드가 표시되는 것을 방지하는 데에도 사용됩니다. 조건부 컴파일 시 제외된 코드는 최종 실행 파일에서 완전히 생략되므로 크기나 성능에 영향을 주지 않습니다.

평가 결과에 관계없이 모든 식은 Option Compare Binary를 사용하여 평가됩니다. Option Compare 문은 #If#ElseIf 문의 식에 영향을 주지 않습니다.

참고 항목

#If, #Else, #ElseIf#End If 지시문의 한 줄 형식은 존재하지 않습니다. 다른 코드는 지시문과 같은 줄에 나타날 수 없습니다.

조건부 컴파일 블록 내의 문은 완전한 논리 문이어야 합니다. 예를 들어, 함수의 특성만 조건부로 컴파일할 수는 없지만 해당 특성과 함께 함수를 조건부로 선언할 수는 있습니다.

#If DEBUG Then
<WebMethod()>
Public Function SomeFunction() As String
#Else
<WebMethod(CacheDuration:=86400)>
Public Function SomeFunction() As String
#End If

예시

이 예에서는 #If...Then...#Else 구문을 사용하여 특정 문을 컴파일할지 여부를 결정합니다.

#Const CustomerNumber = 36
#If CustomerNumber = 35 Then
        ' Insert code to be compiled for customer # 35.
#ElseIf CustomerNumber = 36 Then
        ' Insert code to be compiled for customer # 36.
#Else
        ' Insert code to be compiled for all other customers.
#End If

참고 항목