我正在检查如果边框的子属性未设置为空或等于给定元素,但每当我运行该程序时,它表示它设置为空并崩溃。这是我的代码:
If Not Me.Child.Equals(Nothing) Then ...
If Me.Child.Equals(value) Then ...
两者都有错误。我该怎么做才能通过这些线路?同样在C#中它看起来像这样:
if(this.Child != null) ...
if (this.Child != value) ...
但这次它没有出错。那么我做错了什么?
答案 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#版本。