"对象参考未设置"之间的差异和#34;在0x00000000"

时间:2016-08-08 08:35:59

标签: c# memory runtime-error

我已被告知此错误......

The instruction at 0x01234567 referenced memory at 0x00000000. The memory could not be read.

... 0x00000000指的是NULL。

那么上述错误和...之间的区别是什么?

Object reference not set to an instance of an object

我试图更好地理解上面的错误...

2 个答案:

答案 0 :(得分:1)

第一个,The instruction at 0x01234567 referenced memory at 0x00000000. The memory could not be read.是操作系统(Windows)捕获的异常。您的应用程序尝试从指针设置为0读取字节,该字节受保护(非托管调用,内部函数)。

其次,Object reference not set to an instance of an object由.NET本身捕获。

答案 1 :(得分:0)

简单来说,

“0x01234567处的指令引用了0x00000000处的内存。无法读取内存。”当内存位于某个对象上时会发生,但如果该内存不在,则会为空。

“对象引用未设置为对象的实例”在根本没有创建对象时发生,并且您正在尝试访问“未出生”对象的数据。