2010-01-21 76 views
7

在.net中是否有等效的?:運算符? 如在java中我可以這樣做:Java?:vb.net中的運算符

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

而不是

if (emailParts.length > 0) { 
    retParts[0] = emailParts[0]; 
} else { 
    retParts[0] = ""; 
} 

我希望能在VB.NET做類似。

回答

9

使用If operator

此運算符在VB.NET 9介紹(發佈了.NET Framework 3.5的)。在早期版本中,你將不得不訴諸IIf function(沒有類型推斷,沒有短路):

' always returns Object, always evaluates both ifTrue and ifFalse 
... = IIf(condition, ifTrue, ifFalse)  
+0

+1:注意VB 2008只 - 舊版本不支持。如果運營商的這種變化。 –

+0

所以基本上如果是類型安全的,但只有3.5+,如果不是安全類型,但在所有版本? – themaninthesuitcase

+0

'如果'是類型安全的並且僅在3.5+中可用。 「IIf」(兩個「I」)在所有版本中都不是類型安全的。 – Heinzi