VB.Net中的三元运算符

时间:2017-01-23 21:01:11

标签: vb.net

我是VB.net的新手,想要使用三元运算符。

 If prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0 Then
                Return True
            Else
                Return False
            End If

Myattempt:

Return (prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0) ? True: False

错误:此处无法使用?

2 个答案:

答案 0 :(得分:2)

使用三元(条件)算子

是一个班轮
return If (prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0, True, False)

但是如果你需要立即返回,你可以简单地测试布尔表达式是真还是假

return (prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0)

答案 1 :(得分:2)

2008年之前的VB.NET没有三元运算符。它确实有一个三元函数IIf(cond, truePart, falsePart),但作为一个函数,在函数决定返回之前,将评估truePartfalsePart

在VB.NET 2008中,引入了一个新的运算符,它提供了与C语言中cond ? truePart : falsePart三元运算符相同的功能。此运算符使用If关键字,并使用类似函数的语法表示:

safeQuotient = If(divisor <> 0, dividend / divisor, Double.PositiveInfinity)

在此示例中,即使dividend / divisor为零,truePart中的divisor也是安全的,因为如果divisor为零,则truePart完全被忽略,并且不会发生除零。

对于您的示例,正​​如@nabuchodonossor所指出的那样,您只需将已经TrueFalse的布尔值转换为相同的TrueFalse }值,但为了完整性,你可以完全按照@Steve显示的那样写出:

Return If(prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0, True, False)