Чи можна зробити один рядок if у VB .NET? Якщо так, то як?
Чи можна зробити один рядок if у VB .NET? Якщо так, то як?
Відповіді:
Використовуйте IF ().
Це короткозамкнений потрійний оператор.
Dim Result = IF(expression,<true return>,<false return>)
ДИВИТИСЯ ТАКОЖ:
If(x.HasValue, x.Value, Nothing)
поверне 0, якщо x не містить значення. Одним із способів виправлення може бути примусове значення до Nullable таким чином:If(x.HasValue, CType( x.Value, Nullable( of Integer) ), Nothing)
x
має тип Integer?
, значить x.Value
має тип Integer
, НЕ Integer?
. Отже, компілятор правильно перетворив Nothing у Integer
(щоб відповідати іншому результату), в результаті чого 0
. Просто пояснення поведінки компілятора; те, що ви зробили, - це прекрасне рішення для того, що ви хотіли. Альтернативним рішенням було б передати Ніщо на бажаний тип, наприклад DirectCast(Nothing, Integer?)
.
Насправді це досить просто ..
If CONDITION Then ..INSERT CODE HERE..
If...Then...Else...
висловлювань в один рядок можливо. Однак пам’ятайте, коли ви поєднуєте це з розміщенням декількох операторів в одному рядку за допомогою двокрапки. Оператор If <condition> Then <action1> : <action2>
виконуватиме action2 лише у поєднанні з action 1! Action2 не є окремим твердженням! Тому для наочності я б радив завжди використовувати оператори блоків і взагалі уникати двокрапки.
Не знаю, чому люди цього ще не опублікували ...
Однорядковий
Синтаксис:
If (condition) Then (do this)
Приклад:
If flag = true Then i = 1
Кілька інших
Синтаксис:
If (condition) Then : (do this)
ElseIf (condition2) Then : (do this)
Else : (do this)
End If
АБО
If (condition) Then : (do this) : ElseIf (condition2) Then : (do this) : Else : (do this) : End If
Багато операцій
Синтаксис:
If (condition) Then : (do this) : (and this) : End If
Сподіваюся, це комусь допоможе.
Ризикуючи спричинити защемлення програмістів purests та c #, ви можете використовувати декілька операторів, інакше в однострочному операторі if у VB. У цьому прикладі y закінчується 3, а не 7.
i = 1
If i = 1 Then x = 3 : y = 3 Else x = 7 : y = 7
Або
IIf(CONDITION, TRUE_ACTION, FALSE_ACTION)
IIf
проти ідентичного синтаксису з If
є те, що IIf
він більш схильний до помилок під час виконання .
Просто додайте Then
:
If A = 1 Then A = 2
або:
If A = 1 Then _
A = 2
Простіше, ніж ви думаєте, зауважив, що ніхто ще не поклав те, що я маю, тому кину свої 2 центи.
У моєму тестуванні вам не потрібно continuation? semi-colon
, ви можете обійтися без, також ви можете зробити це без End If
.
<C#> = Condition.
<R#> = True Return.
<E> = Else Return.
Одномісний стан
If <C1> Then <R1> Else <E>
Кілька умов
If <C1> Then <R1> Else If <C2> Then <R2> Else <E>
Нескінченний? Умови
If <C1> Then <R1> Else If <C2> Then <R2> If <C3> Then <R3> If <C4> Then <R4> Else...
' Just keep adding "If <C> Then <R> Else" to get more
-Не дуже впевнений, як відформатувати це, щоб зробити його більш читабельним, тому, якщо хтось може запропонувати редагування, будь ласка, зробіть-
Ви також можете використовувати функцію IIf:
CheckIt = IIf(TestMe > 1000, "Large", "Small")
якщо умова, то command1: else command2 ...