2010-01-21 2 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 только - более старые версии не поддерживают этот вариант оператора If. –

+0

Таким образом, по существу, если тип безопасен, но только в 3.5+, если он не безопасен, а находится во всех версиях? – themaninthesuitcase

+0

'If' безопасен по типу и доступен только в формате 3.5+. 'IIf' (два« I ») не является безопасным для типов и доступен во всех версиях. – Heinzi