我是 VB.net 新手,想使用三元运算符。
If prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0 Then
Return True
Else
Return False
End If
Run Code Online (Sandbox Code Playgroud)
我的尝试:
Return (prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0) ? True: False
错误:?不能在这里使用。
2008 年之前的 VB.NET 没有三元运算符。它确实有一个三元函数, IIf(cond, truePart, falsePart),但作为一个函数,在函数决定返回哪个之前,都会对truePart和进行求值。falsePart
VB.NET 2008 中引入了一个新的运算符cond ? truePart : falsePart,它提供与类 C 语言中的三元运算符相同的功能。该运算符使用If关键字并用类似函数的语法表示:
safeQuotient = If(divisor <> 0, dividend / divisor, Double.PositiveInfinity)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,即使是零也是安全的,因为如果dividend / divisor是零,则完全被忽略,并且不会发生被零除的情况。truePartdivisordivisortruePart
对于您的示例,正如 @nabuchodonossor 所指出的,您只会将已经存在的布尔值True或转换False为相同的True或False值,但为了完整起见,您可以完全按照@Steve所示将其写出:
Return If(prefixDt IsNot Nothing AndAlso prefixDt.Rows.Count > 0, True, False)
Run Code Online (Sandbox Code Playgroud)