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

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

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

Есть ли аналогичный оператор в 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 # вместо этого не компилирует

  • Математическая цепочка оператора сравнения - как и в случае, если ((5 <j <= 1)) "
  • Можно ли получить указатель на функцию встроенного стандартного оператора?
  • Разница между & и && в Java?
  • Операция XOR с двумя строками в java
  • Есть ли разница в производительности между ++ i и i ++ в C #?
  • (OrElse и Or) и (AndAlso и And) - Когда использовать?
  • Что делает >> в java?
  • Странное использование python и / или оператора
  • Понимание побитового оператора AND
  • Оператор массива C ++ с несколькими аргументами?
  • !! c, является двумя НЕ?
  • Давайте будем гением компьютера.