Существует ли условный тернарный оператор в VB.NET?



в Perl (и других языках) условный тернарный оператор может быть выражен следующим образом:



my $foo = $bar == $buz ? $cat : $dog;


есть ли подобный оператор в VB.NET?

769   3  

3 ответов:

зависит от версии. Элемент If оператор in VB.NET 2008-тернарный оператор (а также оператор нулевой коалесценции). Это было только что введено, до 2008 года это было недоступно. Вот еще немного информации:Visual Basic если объявление

пример:

Dim foo as String = If(bar = buz, cat, dog)

iif всегда был доступен в VB, даже в VB6.

Dim foo as String = iif(bar = buz, cat, dog)

это не истинный оператор, как таковой, а функция в Microsoft.Пространство имен VisualBasic.

Если() является ближайшим эквивалентом, но будьте осторожны неявных преобразований происходит, если вы установили "Option Strict off"

например, если вы не осторожны, у вас может возникнуть соблазн попробовать что-то вроде:

Dim foo As Integer? = If( someTrueExpression, Nothing, 2)

даст "foo" значение 0!

Я думаю, что '?'эквивалент оператора в C# вместо этого приведет к сбою компиляции

Comments

    Ничего не найдено.