Проблема с синтаксисом тернарного оператора в VB.NET

#vb.net #syntax #ternary-operator

#vb.net #синтаксис #тернарный оператор

Вопрос:

Я пытаюсь использовать троичный оператор в 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")
 

Ответ №1:

Троичный оператор в VB.NET используется следующим образом:

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

Так что вы могли бы сделать это:

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

Но это был бы лучший способ выполнить то, что вам нужно:

 sb.Append(CStr(bln))
 

Ответ №2:

На языках, основанных на C, он используется как:

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

Но в VB.Net это как:

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