2010-01-21 4 views
7

Existe-t-il un opérateur ?: en .net? par exemple en java je peux faire:Java?: Opérateur dans vb.net

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

plutôt que

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

Je voudrais pouvoir faire la même en VB.NET.

Répondre

9

Utilisez le If operator:

Cet opérateur a été introduit en VB.NET 9 (publié avec .net Framework 3.5). Dans les versions précédentes, vous devrez recourir à la IIf function (aucune inférence de type, pas de court-circuit):

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

+1: Note VB 2008 seulement - les anciennes versions ne prennent pas en charge cette variation de l'opérateur Si. –

+0

Alors essentiellement Si le type est sûr, mais seulement dans 3.5+, Si le type n'est pas sûr mais est dans toutes les versions? – themaninthesuitcase

+0

'If' est de type sécurisé et uniquement disponible en version 3.5+. 'IIf' (deux" I ") n'est pas sécurisé et disponible dans toutes les versions. – Heinzi