我是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
错误:此处无法使用?
。
答案 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)
,但作为一个函数,在函数决定返回之前,将评估truePart
和falsePart
。
在VB.NET 2008中,引入了一个新的运算符,它提供了与C语言中cond ? truePart : falsePart
三元运算符相同的功能。此运算符使用If
关键字,并使用类似函数的语法表示:
safeQuotient = If(divisor <> 0, dividend / divisor, Double.PositiveInfinity)
在此示例中,即使dividend / divisor
为零,truePart
中的divisor
也是安全的,因为如果divisor
为零,则truePart
完全被忽略,并且不会发生除零。
对于您的示例,正如@nabuchodonossor所指出的那样,您只需将已经True
或False
的布尔值转换为相同的True
或False
}值,但为了完整性,你可以完全按照@Steve显示的那样写出:
Return If(prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0, True, False)