2010-01-21 3 views
7

Esiste un equivalente di operatore ?: in .net? ad esempio in java che posso fare:Java?: Operatore in vb.net

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

piuttosto che

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

mi piacerebbe essere in grado di fare simili in VB.NET.

risposta

9

Utilizzare la If operator:

Questo operatore è stato introdotto in VB.NET 9 (rilasciato con NET Framework 3.5). Nelle versioni precedenti, si dovrà ricorrere al IIf function (nessun tipo di inferenza, nessun corto circuito):

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

+1: Nota VB 2008 solo il - le versioni precedenti non supportano questa variazione dell'operatore Se. –

+0

Quindi in sostanza Se è sicuro, ma solo in 3.5+, Se non è sicuro per tipo ma è in tutte le versioni? – themaninthesuitcase

+0

'If' è sicuro per il tipo e disponibile solo in 3.5+. 'IIf' (due" I ") non è sicuro per il tipo e disponibile in tutte le versioni. – Heinzi