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

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

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

Есть ли аналогичный оператор в VB.NET?

3 Solutions collect form web for “Есть ли условный тернарный оператор в VB.NET?”

Зависит от версии. Оператор If в 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 # вместо этого не компилирует

  • Java: Что делает оператор двоеточия (:)?
  • Несколько операций preincrement для переменной в C ++ (C?)
  • Поддержка языков для операторов цепного сравнения (x <y <z)
  • Можно ли получить указатель на функцию встроенного стандартного оператора?
  • !! c, является двумя НЕ?
  • в чем разница между оператором == и equals ()? (с hashcode () ???)
  • Разница между & и &&
  • Оператор Pipe (|) в Java
  • Понимание побитового оператора AND
  • Конструктор преобразования и оператор преобразования: приоритет
  • Почему ++ считается l-значением, но i ++ - нет?
  • Давайте будем гением компьютера.