在Perl(和其他语言)中,条件三元运算符可以表示如下:
my $foo = $bar == $buz ? $cat : $dog;
VB.NET中是否有类似的运算符?
答案 0 :(得分:549)
取决于版本。 VB.NET 2008中的If
运算符是三元运算符(以及空合并运算符)。这是刚刚推出的,在2008年之前没有这个。以下是一些更多信息:Visual Basic If announcement
示例:
Dim foo as String = If(bar = buz, cat, dog)
[编辑]
在2008年之前它是“IIf”,其工作方式几乎与上述的If运算符相同。
示例:
Dim foo as String = IIf(bar = buz, cat, dog)
答案 1 :(得分:74)
iif一直在VB中可用,即使在VB6中也是如此。
Dim foo as String = iif(bar = buz, cat, dog)
它不是真正的运算符,而是Microsoft.VisualBasic命名空间中的函数。
答案 2 :(得分:23)
如果你设置了“Option Strict off”,那么()是最接近的等价物但提防正在进行隐式转换
例如,如果您不小心,可能会尝试尝试以下内容:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
将“foo”赋值为0!
我认为'?' C#中的运算符等同于编译失败答案 3 :(得分:0)
仅作记录,这是 If 和 IIf 之间的区别:
IIf(条件,正确部分,错误部分):
如果(条件,正确部分,错误部分):