2010-01-21 11 views
7

¿Existe un operador equivalente a ?: en .net? por ejemplo, en Java que puede hacer:Java?: Operador en vb.net

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

en lugar de

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

me gustaría ser capaz de hacer semejante en VB.NET.

Respuesta

9

Uso del If operator:

Este operador se introdujo en VB.NET 9 (puesto en libertad con Net Framework 3.5). En versiones anteriores, tendrá que recurrir a la (sin inferencia de tipos, sin cortocircuitos) IIf function:

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

+1: Nota VB 2008 solamente - las versiones anteriores no son compatibles con esta variación del operador Si. –

+0

Así que, en esencia, si es seguro pero solo en 3.5+, ¿no es seguro pero está en todas las versiones? – themaninthesuitcase

+0

'If' es seguro y solo está disponible en 3.5+. 'IIf' (dos" I ") no es seguro para tipos y está disponible en todas las versiones. – Heinzi