人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Object reference not set to an instance of an object】この文どういう意味ですか?
さっぱりわからないです。
よろしくお願いします。

●質問者: jameslolipo
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● なぽりん

オブジェクトを参照する部分(呼び出し)が、あるオブジェクトのひとつのインスタンスに関連づけられてない(ちゃんと一つのインスタンスに設定してくださいヨ)

http://book.geocities.jp/bits_of_java/java/lang/instance/


2 ● a-kuma3
ベストアンサー

何かのマニュアルか、エラーメッセージの文章でしょうか。
「オブジェクトの参照が、何かのオブジェクトを指し示すように設定されていません」って感じになります。

例えば、javascript だと、こういうケースです。

 var arr;
 if (x > 0) {
 arr = new Array();
 arr.push(x);
 }

 console.log(arr.length); // x > 0 じゃないと、arr には何も入ってない!


参照(リファレンス)が、ピンと来てない感じですか。
最近の言語だと、変数は参照しかないから、何と違うかよく分からないですよね、きっと。

c++ だと、値型と参照型の二つの変数があります(いや、ポインタもあるけど、目をつぶっておく)。

 MyObject a, b; // 値型の変数
 // MyObject が 80byte の大きさだったら、宣言した時点で
 // コンストラクタも呼ばれ、80×2 = 160byte の領域を取ります

 a = b; // 中身が複製されます(言い方は、正確じゃないです)

 b.member = "aaa"; // b のメンバーを変えても、a.member は変わりません


 MyObject &r; // 参照型の変数
 // どのオブジェクトでも、参照のサイズしかとりません

 r = b; // r が、変数 b のオブジェクトを指すように設定します

 b.member = "ccc"; // r は b を指しているので、r.member も "ccc" になります


 a = b; // 中身が複製されます(言い方は、正確じゃないです)

と書いたのは、c++ は、演算子 = の動作をオーバーライドできるからです。
この辺りをごちゃごちゃと書きだすと、本題から離れてしまうので、ここで止めておきます。


a-kuma3さんのコメント
C# か VB.NET で、NullReferenceException が出て困ってるんだけど、エラーメッセージの意味が分からん、ってことですか? [https://msdn.microsoft.com/ja-jp/library/system.nullreferenceexception%28v=vs.110%29.aspx:title]
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ