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

回到顶部