在Perl(和其他语言)中,条件三元运算符可以表示如下:
my $foo = $bar == $buz ? $cat : $dog;
VB.NET中是否有类似的运算符?
取决于版本 . VB.NET 2008中的 If 运算符是三元运算符(以及空合并运算符) . 这是刚刚推出的,在2008年之前没有这个 . 这里有更多信息:Visual Basic If announcement
If
例:
Dim foo as String = If(bar = buz, cat, dog)
即使在VB6中,iif也一直在VB中使用 .
Dim foo as String = iif(bar = buz, cat, dog)
它不是真正的运算符,而是Microsoft.VisualBasic命名空间中的函数 .
If()是最接近的等价物,但如果你设置了"Option Strict off",那么 beware 的隐式转换正在进行
例如,如果您不小心,可能会尝试尝试以下方法:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
将“foo”赋值为0!
我觉得 '?' C#中的运算符等同于编译失败
3 回答
取决于版本 . VB.NET 2008中的
If
运算符是三元运算符(以及空合并运算符) . 这是刚刚推出的,在2008年之前没有这个 . 这里有更多信息:Visual Basic If announcement例:
即使在VB6中,iif也一直在VB中使用 .
它不是真正的运算符,而是Microsoft.VisualBasic命名空间中的函数 .
If()是最接近的等价物,但如果你设置了"Option Strict off",那么 beware 的隐式转换正在进行
例如,如果您不小心,可能会尝试尝试以下方法:
将“foo”赋值为0!
我觉得 '?' C#中的运算符等同于编译失败