[vb.net] VB.NET에 조건부 삼항 연산자가 있습니까?

Perl (및 기타 언어)에서 조건부 삼항 연산자는 다음과 같이 표현 될 수 있습니다.

my $foo = $bar == $buz ? $cat : $dog;

VB.NET에 비슷한 연산자가 있습니까?



답변

버전에 따라 다릅니다. IfVB.NET 2008 의 연산자는 3 진 연산자 (널 병합 처리 연산자)입니다. 이것은 2008 년 이전에 소개되었지만 사용할 수 없었습니다. 추가 정보는 다음과 같습니다. Visual Basic If 공고

예:

Dim foo as String = If(bar = buz, cat, dog)

[편집하다]

2008 년 이전에는 위에서 설명한 운영자 IIf와 거의 동일하게 작동했습니다 If.

예:

Dim foo as String = IIf(bar = buz, cat, dog)


답변

iif는 VB6에서도 가능합니다.

Dim foo as String = iif(bar = buz, cat, dog)

이는 실제 연산자가 아니라 Microsoft.VisualBasic 네임 스페이스의 함수입니다.


답변

If ()가 가장 비슷하지만 주의하십시오 “Option Strict off”를 설정 한 경우 암시 적 변환이 진행되는 것을

예를 들어, 조심하지 않으면 다음과 같은 시도를 할 수 있습니다.

Dim foo As Integer? = If( someTrueExpression, Nothing, 2)

“foo”에 0의 값을 줄 것이다!

내 생각 엔 ‘?’ C #에서 동등한 연산자가 컴파일에 실패합니다.


답변