在VB .NET中有一行

Raú*_*Roa 70 vb.net conditional-operator

是否有可能在VB .NET中执行一行if语句?如果是这样,怎么样?

bea*_*ach 109

使用IF().

它是一个短路三元运算符.

Dim Result = IF(expression,<true return>,<false return>)
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 请注意,可以存在隐式类型转换.例如:`if(x.HasValue,x.Value,Nothing)`如果x不包含值,则返回0.一种补救方法可以是强制值为Nullable,如下所示:`if(x.HasValue,CType(x.Value,Nullable(of Integer)),Nothing)` (3认同)
  • @LosManos FYI,你得到的结果的原因如下:如果`x`的类型是`Integer?`,那么`x.Value`的类型是`Integer`,而不是`Integer?`.所以编译器将Nothing转换为`Integer`(以匹配其他结果)是正确的,从而产生'0'.只是解释编译器的行为; 你所做的是一个很好的解决方案,你想要的.另一种解决方案是将Nothing转换为所需的类型,例如`DirectCast(Nothing,Integer?)`. (2认同)

Qui*_*son 24

它实际上非常简单..

If CONDITION Then ..INSERT CODE HERE..
Run Code Online (Sandbox Code Playgroud)

  • 还有其他部分? (2认同)

xpd*_*pda 14

冒着被purests和c#程序员引起一些烦恼的风险,你可以使用多个语句,或者在VB中使用单行if语句.在这个例子中,y结束3而不是7.

i = 1
If i = 1 Then x = 3 : y = 3 Else x = 7 : y = 7
Run Code Online (Sandbox Code Playgroud)

  • 为什么要走一半?i = 1:如果i = 1则x = 3:y = 3否则x = 7:y = 7 (9认同)
  • @BrianWebster 不错。我恨它。:) (2认同)

Flu*_*ert 13

不知道为什么人们还没发布这个......

单线

句法:

If (condition) Then (do this)
Run Code Online (Sandbox Code Playgroud)

例:

If flag = true Then i = 1
Run Code Online (Sandbox Code Playgroud)

多个ElseIf

句法:

If (condition) Then : (do this)
ElseIf (condition2) Then : (do this)
Else : (do this)
End If
Run Code Online (Sandbox Code Playgroud)

要么

If (condition) Then : (do this) : ElseIf (condition2) Then : (do this) : Else : (do this) : End If
Run Code Online (Sandbox Code Playgroud)

多个操作

句法:

If (condition) Then : (do this) : (and this) : End If
Run Code Online (Sandbox Code Playgroud)

希望这会对某人有所帮助.


Dmi*_*kov 6

要么

IIf(CONDITION, TRUE_ACTION, FALSE_ACTION)
Run Code Online (Sandbox Code Playgroud)