IF语句的优先级部分
我有一个验证数据的IF语句。IF语句的优先级部分
基本上是这样的:
Dim s As String = Nothing If s Is Nothing Or s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Console.Read()
我想检查,看看没什么第一,因为如果我这样写,它抛出一个NullReferenceException。
我想重新写这样的:
If s Is Nothing Then Console.WriteLine("Please enter a value")
ElseIf s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
但如果我这样做,我得到了相同的错误消息两次,我相信这是不太清楚我的意图是什么。
我也试过在Is Nothing子句中引入括号,但它不起作用。
是否有一个优雅的测试对象是什么,然后测试它的属性?
回答:
.NET 2.0引入了OrElse
关键字来做短路。这意味着如果左侧为真,它将不会评估OrElse
的右侧。除此之外,它的功能与Or
完全相同。
And
等效为AndAlso
,如果左侧为假,则不会评估右侧。
Dim s As String = Nothing If s Is Nothing OrElse s.Length = 0 Then
Console.WriteLine("Please enter a value")
End If
Console.Read()
应该做你想做的。
回答:
你可以使用:
if (string.IsNullOrEmpty(s)) {
//do work
}
以上是 IF语句的优先级部分 的全部内容, 来源链接: utcz.com/qa/261378.html