#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
참고 항목
.NET