正在使用新关键字时未设置对象引用

时间:2011-04-25 09:42:09

标签: .net vb.net

我有这个CMember课程。我写了类似

的东西
Dim moMember As CMember
moMember = New CMember

然后我想为其CentreId属性设置一个变量:

moMember.CentreId = CentreNumber

两者都是整数,但抛出了Object Refrence Not Set异常,为什么?

2 个答案:

答案 0 :(得分:1)

我的猜测是moMember不是null,但属性设置器(CentreId)使用了一些我正确配置的内部状态,并因此抛出了异常。在没有空检查的情况下调用的事件将是一个典型的例子,一些持有状态的内部对象也是如此。检查设置器以查看发生的情况。如果您要分配的值(CentreNumber)是属性,那么它也可以从那里抛出;再次:检查吸气剂。

,类new可以返回null,但仅限于 极端 不可能偶然发生的边缘情况。因此,我非常怀疑moMembernull - 调试器会告诉你足够快。

答案 1 :(得分:0)

如果在初始化和设置CentreId之间没有其他代码,那么moMember的任何方式都不应为空。也许在构造CMember期间会发生异常。