2

我一遍又一遍地遇到同样的问题,我刚才又做了一次。我写了一行代码:

int LAID = db.GetLAByLatLong(address.Latitude, address.Longitude);

...和 ​​Visual Studio in 报告该行没有任何问题。

但是当我运行它报告的代码时:

你调用的对象是空的

我究竟做错了什么?为什么 Visual Studio 似乎说代码没问题,但在运行时却报错?我似乎经常这样做,我真的很想了解我做错了什么,这样我就可以避免它。

4

3 回答 3

8

您的代码中有两个对象:

db

address

您在显示的代码中引用了这两个对象。其中至少有一个为空。

为避免该问题,请确保在代码运行之前已初始化这两个对象。您还可以添加检查,例如

if (db == null) throw new Exception("The variable db is null.");
于 2013-03-20T22:46:25.190 回答
3

代码可以编译,因为从所有意图和目的来看,它都是正确的。

但是,这并不意味着它不会在运行时导致错误。错误“对象引用未设置为对象的实例?” 表示您正在使用的对象不存在。在这一行中,它可能是变量 db 或地址引用的对象。

要知道哪个,您必须调试代码。在该行上放置一个断点(单击该行左侧的空间)并按 F5。代码将运行然后在该行停止,您可以在其中检查所有变量包含的内容。

于 2013-03-20T22:48:08.943 回答
2

您必须检查哪些变量可能是null. 有关帮助您解决问题的步骤列表,请参阅此答案。

在这种情况下,dbaddress变量之一可能null,这是导致 a 的最常见原因NullReferenceException

于 2013-03-20T22:48:07.927 回答