VB.NET中的三元运算符语法问题

时间:2014-06-25 19:56:34

标签: vb.net syntax ternary-operator

我试图在vb.net中使用三元运算符,但要确定要附加到字符串的内容但我遇到语法问题...

为什么第三行会在 ==生成表达式预期错误

时出错
Dim sb As New StringBuilder
Dim bln As Boolean
bln == true ? sb.append("True") : sb.Append("False")
' this also doesn't work
bln ? sb.append("True") : sb.Append("False")

2 个答案:

答案 0 :(得分:4)

VB.NET中的三元运算符使用如下:

If(<Test Statement>, <Result if True>, <Result if False>)

所以你可以这样做:

sb.Append(If(bln, "True", "False"))

但这将是一种更好的方式来实现您的需求:

sb.Append(CStr(bln))

答案 1 :(得分:1)

在基于C的语言上,它使用如下:

String name = (person == null) ? "" : person.Name;

但在VB.Net中它就像:

Dim name As String = If(person Is Nothing, "", person.Name)