我一遍又一遍地遇到同样的问题,我刚才又做了一次。我写了一行代码:
int LAID = db.GetLAByLatLong(address.Latitude, address.Longitude);
...和 Visual Studio in 报告该行没有任何问题。
但是当我运行它报告的代码时:
你调用的对象是空的
我究竟做错了什么?为什么 Visual Studio 似乎说代码没问题,但在运行时却报错?我似乎经常这样做,我真的很想了解我做错了什么,这样我就可以避免它。
我一遍又一遍地遇到同样的问题,我刚才又做了一次。我写了一行代码:
int LAID = db.GetLAByLatLong(address.Latitude, address.Longitude);
...和 Visual Studio in 报告该行没有任何问题。
但是当我运行它报告的代码时:
你调用的对象是空的
我究竟做错了什么?为什么 Visual Studio 似乎说代码没问题,但在运行时却报错?我似乎经常这样做,我真的很想了解我做错了什么,这样我就可以避免它。
您的代码中有两个对象:
db
和
address
您在显示的代码中引用了这两个对象。其中至少有一个为空。
为避免该问题,请确保在代码运行之前已初始化这两个对象。您还可以添加检查,例如
if (db == null) throw new Exception("The variable db is null.");
代码可以编译,因为从所有意图和目的来看,它都是正确的。
但是,这并不意味着它不会在运行时导致错误。错误“对象引用未设置为对象的实例?” 表示您正在使用的对象不存在。在这一行中,它可能是变量 db 或地址引用的对象。
要知道哪个,您必须调试代码。在该行上放置一个断点(单击该行左侧的空间)并按 F5。代码将运行然后在该行停止,您可以在其中检查所有变量包含的内容。
您必须检查哪些变量可能是null
. 有关帮助您解决问题的步骤列表,请参阅此答案。
在这种情况下,db
和address
变量之一可能是null
,这是导致 a 的最常见原因NullReferenceException
。