我得到了一些非常奇怪的行为。对象似乎为null且不是同时为null,并且语句将被跳过。我可能是个白痴,但如果这是我的错,我就不会看到它。我在Windows 7 SP1操作系统上使用Visual Studio 2008进行构建。
to_date('022417', 'MMDDYY')
成功创建opcDriver对象并将其传递给此方法。当我单步执行时," int a = 1"声明被执行。然后,在下一个if块中,执行进入"抛出ex"语句不执行上面创建ex对象的行。所以,ex为null并且抛出null会给我一个访问冲突异常。
你知道这里会发生什么吗?
OpcDriver类的几个成员是来自15岁未使用的,不受支持的示例库的类的实例,该库使用COM与OPC(用于过程控制的OLE)程序进行交互。我唯一能想到的是,在那个图书馆的某个地方发生了一些奇怪的事情,但我无法想象这是怎么可能的。
谢谢。
答案 0 :(得分:0)
你应该尝试更新的visual studio构建。我在2008和2012版本上遇到了几乎相同的问题。这是一个visual studio编译时错误。你应该检查你的构建选项,如果你选择了“发布”模式,你应该回来调试再试一次。
答案 1 :(得分:0)
总而言之,问题的根源可能是错误的运算符重载(==和/或!=)。考试
if (Object.ReferenceEquals(opcDriver, null))
按预期工作。