Nat*_*oop 0 .net vb.net if-statement
我有一个验证数据的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()
Run Code Online (Sandbox Code Playgroud)
我想检查一下是否先没有,因为如果我这样写,它会抛出一个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
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,我会得到两次相同的错误消息,我相信我的意图不太明确.
我也尝试在s 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()
Run Code Online (Sandbox Code Playgroud)
应该做你想做的事.