2

私は同じ問題に何度も何度もぶつかり続けます、そして私はちょうど今それをやり直しました。私は1行のコードを書きました:

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

...そしてVisualStudioは、回線に問題がないことを報告しています。

しかし、コードを実行すると、次のように報告されます。

オブジェクト参照がオブジェクト インスタンスに設定されていません

私は何が間違っているのですか?Visual Studioがコードに問題がないと言っているように見えるのに、実行時にエラーが報告されるのはなぜですか?私はこれをたくさんやっているようです、そして私はそれを避けることができるように私が間違っていることを本当に理解したいです。

4

3 に答える 3

8

コードには2つのオブジェクトがあります。

db

address

示されているコードで両方のオブジェクトを参照しています。それらの少なくとも1つはnullです。

この問題を回避するには、コードを実行する前に両方のオブジェクトを初期化したことを確認してください。次のようなチェックを追加することもできます

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

すべての意図と目的のためにそれが正しいので、コードはコンパイルされます。

ただし、それは実行時にエラーを引き起こさないという意味ではありません。エラー「オブジェクト参照がオブジェクトのインスタンスに設定されていませんか?」使用しているオブジェクトが存在しないことを意味します。この行では、変数dbまたはaddressによって参照されるオブジェクトである可能性があります。

どちらかを知るには、コードをデバッグする必要があります。その行にブレークポイントを設定し(行の左側のスペースをクリック)、F5キーを押します。コードが実行され、その行で停止します。ここで、すべての変数に含まれているものを調べることができます。

于 2013-03-20T22:48:08.943 に答える
2

どの変数がであるかを確認する必要がありますnull。あなたがそれを解決するのを助けるステップのリストについては、この答えを見てください。

この場合dbaddress変数の1つはである可能性があり、これが。nullの最も一般的な原因ですNullReferenceException

于 2013-03-20T22:48:07.927 に答える