• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

IF语句的优先级部分

.net 来源:Nathan Koop 10次浏览

我有一个验证数据的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() 

应该做你想做的。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)