Java?:vb.net中的运算符

Java?:vb.net中的运算符,java,vb.net,language-features,conditional-operator,Java,Vb.net,Language Features,Conditional Operator,在.net中是否有一个等价的?:运算符? 例如,在java中,我可以做: retParts[0] = (emailParts.length > 0) ? emailParts[0] : ""; 而不是 if (emailParts.length > 0) { retParts[0] = emailParts[0]; } else { retParts[0] = ""; } 我希望能够在VB.NET中执行类似操作。使用: 该操作符是在VB.NET 9(与.NET F

在.net中是否有一个等价的
?:
运算符? 例如,在java中,我可以做:

retParts[0] = (emailParts.length > 0) ? emailParts[0] : "";
而不是

if (emailParts.length > 0) {
    retParts[0] = emailParts[0];
} else {
    retParts[0] = "";
}
我希望能够在VB.NET中执行类似操作。

使用:

该操作符是在VB.NET 9(与.NET Framework 3.5一起发布)中引入的。在早期版本中,您必须求助于(无类型推断,无短路):


+1:注意:仅限VB 2008-旧版本不支持If运算符的这种变体。因此,本质上If是类型安全的,但仅在3.5+中使用,If不是类型安全的,但在所有版本中都使用?
If
是类型安全的,仅在3.5+中可用
IIf
(两个“I”)不是类型安全的,在所有版本中都可用。1)“IIf”计算两侧,请尝试IIf(True,MsgBox(“1”)、MsgBox(“2”)),而不是“If”,它是关键字,而不是函数。请看2)“如果”也用作??cs关键字,即If(无,变量)
' data type infered from ifTrue and ifFalse
... = If(condition, ifTrue, ifFalse)     
' always returns Object, always evaluates both ifTrue and ifFalse
... = IIf(condition, ifTrue, ifFalse)