Visual Basic .NET Language
정황
수색…
IF ... Then ... Else
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
연산자
9.0
If(condition > value, "True", "False")
우리는 If 연산자 대신 If ... Then ... Else..End If 문을 사용할 수 있습니다.
다음 예제를 고려하십시오.
If 10 > 9 Then
MsgBox("True")
Else
MsgBox("False")
End If
와 같다
MsgBox(If(10 > 9, "True", "False"))
If()
가 단락 평가를 사용 If()
즉, 사용 된 인수 만 평가한다는 의미입니다.) 조건 (또는 거짓이면 Nullable
하지 Nothing
), 제 대안은 전혀 계산되지 않으며, 부작용 전혀 관찰되지 않는다. 이것은 condition?a:b
의 형태로 C #의 삼항 연산자 와 실질적으로 동일 condition?a:b
.
이는 예외를 피할 때 특히 유용합니다.
Dim z As Integer = If(x = 0, 0, y/x)
우리는 모두 0으로 나누면 예외가 발생하지만 If()
는 조건이 이미 보장 한 식으로 만 단락함으로써이를 방지하는 것으로 간주됩니다.
다른 예시:
Dim varDate as DateTime = If(varString <> "N/A", Convert.ToDateTime(varString), Now.Date)
경우 varString <> "N/A"
평가 False
, 그것은 할당한다 varDate
등의 값 Now.Date
첫번째 식을 평가없이.
9.0
VB의 이전 버전에는 If()
연산자가 없으므로 IIf()
내장 함수로 처리해야합니다. 그것은 작동자가 아닌 기능이기 때문에 단락을 일으키지 않습니다 . 모든 표현식은 성능 저하, 상태 변경 및 예외 발생과 같은 모든 부작용을 고려하여 평가됩니다. 예외를 피하는 위의 두 예제 모두 IIf
로 변환하면 throw됩니다. 이러한 부작용 중 하나라도 문제가 발생하면 인라인 조건을 사용할 방법이 없습니다. 대신 If..Then
블록을 평소와 같이 사용하십시오.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow