VB.NET缺少isNull()?

时间:2009-03-13 12:23:14

标签: vb.net

我想确认数组已创建,怎么做?没有nul关键字?

Dim items As Array = str.Split("|")
if (items=null)  then ???

6 个答案:

答案 0 :(得分:24)

要检查VB.Net中的对象是否为null,您需要使用Nothing关键字。 e.g。

If (items is Nothing) Then
    'do stuff
End If

但是string.Split()永远不会返回null,因此您应该检查输入字符串是否为null而不是items数组。您的代码可以更改为:

If Not String.IsNullOrEmpty(str) Then
    Dim items As Array = str.Split("|")
    'do stuff
End If

答案 1 :(得分:7)

在分割之前尝试在字符串变量上使用String.IsNullOrEmpty。如果您尝试在字符串中没有任何内容的情况下拆分变量,则数组中仍会有一个项目(空字符串),因此对数组的IsNothing检查将返回false。

答案 2 :(得分:3)

String.Split永远不会返回null。在最坏的情况下,它可以返回一个没有元素的数组。

答案 3 :(得分:2)

在VB.NET中使用“Is Nothing”来测试Null。

If items Is Nothing Then

End If

答案 4 :(得分:1)

VB中null的关键字是Nothing

但是,这不是您想要在这种情况下使用的内容。 Split方法永远不会返回空引用。它总是返回一个至少包含一个项目的字符串数组。如果您拆分的字符串为空,则会得到一个包含一个长度为零的字符串的数组。

所以,要检查你是否得到了结果:

Dim items As String() = str.Split("|")
If items.Length = 1 and items(0).Length = 0 Then ...

首先检查输入当然更容易:

If str.Length = 0 Then ...

答案 5 :(得分:0)

对于一个班轮,请执行以下操作:

destinationVariable = if(myvar is nothing, "", myvar)