.net 令人费解的子对象实例化
我有一个对象(事件),它有一个子对象(动作)。事件可能有零个或一个动作对象。我正在尝试测试事件对象是否有具有以下代码的子操作对象:.net 令人费解的子对象实例化,.net,vb.net,.net,Vb.net,我有一个对象(事件),它有一个子对象(动作)。事件可能有零个或一个动作对象。我正在尝试测试事件对象是否有具有以下代码的子操作对象: 如果不是我的事故。行动什么都不是 从理论上讲,这应该是可行的,但由于某种原因,子动作对象被神秘地暗示(没有值)。此实例化似乎发生在If-Else语句的Else行上,在该行中,我检查事件对象的ID属性以确定它是否已保存到数据库: If MyIncident.ID = 0 Then Me.cmdAddNote.Visible = False Me.dgvNot
如果不是我的事故。行动什么都不是
从理论上讲,这应该是可行的,但由于某种原因,子动作对象被神秘地暗示(没有值)。此实例化似乎发生在If-Else语句的Else行上,在该行中,我检查事件对象的ID属性以确定它是否已保存到数据库:
If MyIncident.ID = 0 Then
Me.cmdAddNote.Visible = False
Me.dgvNotes.Visible = False
Me.DefaultHitsAndMisses()
Else
Me.cmdAddNote.Visible = True
If Not MyIncident.Action Is Nothing Then
Me.cboCorrectiveActionStatus.SelectedValue = Me.MyIncident.Action.Status.ID
End If
End If
Action在If语句的第一行没有任何内容,但似乎是在这一行和Else行之间实例化的(在本例中,只有Else行会被执行)
如果在填充事件对象时需要,则会实例化该操作对象,如果事件对象没有关联的操作,则会显式保留该操作对象未实例化
我希望根据动作对象是否为空来建立一些逻辑,但它似乎不是一个可靠的检查
有人能解释一下吗
注意:很抱歉,但是代码示例似乎不希望正确标记 你的行为是一个结构还是一个类?结构不能为空。是否将其定义为新的
?或者是一个结构?哈!我试图变得聪明,但实际上是愚蠢的,我的Action属性在每次调用对象时构造一个新的对象实例,并检查数据库中是否有适当的数据。如果无法加载数据,我无法将Action成员变量设置回nothing。我已经修改了属性,如果发生这种情况,则不返回任何内容,现在一切都按预期工作。我试图通过“懒散加载”动作对象来变得聪明。那会让我明白的
感谢所有提供帮助的人。您能告诉我们事件的类定义吗?代码中缺少Action属性的相关实现。