【Object reference not set to an instance of an object】この文どういう意味ですか?

さっぱりわからないです。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/02/03 15:16:14
  • 終了:2015/02/10 15:20:03

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4443ベストアンサー獲得回数18252015/02/03 16:08:29

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

例えば、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++ は、演算子 = の動作をオーバーライドできるからです。
この辺りをごちゃごちゃと書きだすと、本題から離れてしまうので、ここで止めておきます。

id:a-kuma3

C# か VB.NET で、NullReferenceException が出て困ってるんだけど、エラーメッセージの意味が分からん、ってことですか?
NullReferenceException クラス (System)

2015/02/03 16:11:56

その他の回答(1件)

id:NAPORIN No.1

なぽりん回答回数4655ベストアンサー獲得回数8512015/02/03 15:42:32

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

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

id:a-kuma3 No.2

a-kuma3回答回数4443ベストアンサー獲得回数18252015/02/03 16:08:29ここでベストアンサー

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

例えば、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++ は、演算子 = の動作をオーバーライドできるからです。
この辺りをごちゃごちゃと書きだすと、本題から離れてしまうので、ここで止めておきます。

id:a-kuma3

C# か VB.NET で、NullReferenceException が出て困ってるんだけど、エラーメッセージの意味が分からん、ってことですか?
NullReferenceException クラス (System)

2015/02/03 16:11:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません