对象引用未设置为对象的实例:子属性

时间:2011-11-21 21:26:19

标签: .net wpf vb.net

我正在检查如果边框的子属性未设置为空或等于给定元素,但每当我运行该程序时,它表示它设置为空并崩溃。这是我的代码:

If Not Me.Child.Equals(Nothing) Then ...
If Me.Child.Equals(value) Then ...

两者都有错误。我该怎么做才能通过这些线路?同样在C#中它看起来像这样:

if(this.Child != null) ...
if (this.Child != value) ...

但这次它没有出错。那么我做错了什么?

2 个答案:

答案 0 :(得分:3)

如果Child没有(或为null),那么尝试在其上调用Equals方法将是一个错误。你的C#代码用于空检查的VB版本将是

If Not Me.Child Is Nothing Then
     ...
End If

答案 1 :(得分:2)

你做错了是在一个不存在的对象上调用一个'Equals'方法;你不能在null对象上运行任何方法(甚至是Equals)。

要解决您的问题,您有正确的通用方法 - 检查对象是否存在:

If Not Me.Child Is Nothing Then ...

在C#中,如果您尝试使用

,则会出现相同的错误
if (this.Child.Equals(null))

您的初始Basic语句的C#版本。