
開発環境はMicrofoft visual stdio 2005 で開発言語はC#を使い、Windousアプリケーションでプログラミングしているのですが
オブジェクトを配列でせんげんし、オブジェクトのメンバを使うとエラーが出てしまいます。ソースコードで説明すると
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public class car
{
int a;
public void set(int i)
{
a = i;
}
}
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
car[] bike = new car[1];
bike[0].set(1);//ここでひっかかる
}
}
}
これをじっこうするとデバックは通るのですが、label1_Clickイベントが発生すると、「NULLの場所を参照しています」という意味のエラーが出てしまいます。
C#はほとんど初心者なので、初歩的なミスだとおもうんですが、
よろしければ御回答をお願いします。
No.1ベストアンサー
- 回答日時:
こんにちわ。
確かにそのコードでは、エラーになります。
配列というのは、単にデータの集合を現しているに過ぎません。
つまり、
car[] bike = new car[1];
という記述は、carオブジェクトが1つ入る「箱(bike)」を用意しているに過ぎず、
上記の段階で、箱の中にcarオブジェクトが入るわけでありません。
箱の中にcarオブジェクトが入っていないにも関わらず、
以下のような記述をしてしまうと、
bike[0].set(1);
「bike[0]には何も入っていない=Null」と判定されエラーになってしまうのです。
質問者様がお望みの動きをさせたい場合、carオブジェクトをインスタンス化する必要があります。
つまり、
car[] bike = new car[1];
car myCar = new car();
myCar.set(1);
bike[0] = myCar;
または、
car[] bike = new car[1];
bike[0] = = new car();
bike[0].set(1);
となります。
なるほど・・・配列を宣言した時点では、オブジェクトがはいっていなかったのですね><。
わかりやすくて、親切なお返事ありがとうございます。たすかりました^^。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
実行時エラー 3265「要求された...
-
「Columns("A:C")」の列文字を...
-
VBAで作成するメール(開封確認...
-
AccessVBAで「dim dbs as datab...
-
エクセルのVBAの標準モジュール...
-
ADO 「NEW」の意味、必要性
-
オブジェクトが見つかりません
-
VBAで既に開いている別アプリケ...
-
コンパイルエラーの対処がわか...
-
Excel VBAでWordの複数ファイル...
-
[VBA]CDOメッセージ送信エラー
-
EXCEL VBA オートシェイプナン...
-
横軸ラベルの追加に関するエラ...
-
テキストボックス中の文字列の...
-
VBからPDFファイル自動生成...
-
ASPからSELECT文を複数発行する...
-
Acces2002のエラーメッセ...
-
Excel2007 VBA ラジオボタン Ca...
-
VB6 エクセルに画像貼り付け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
VBAで既に開いている別アプリケ...
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
上下の位置揃えについて
-
エクセルマクロエラー「'Cells'...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルVBAでcode128のバー...
-
テキストボックス中の文字列の...
-
EXCEL VBA オートシェイプナン...
-
AccessVBAで「dim dbs as datab...
-
findメソッドの変数について
-
ある文字列が全て数字であるか...
-
VBAからPDFファイルにパスワー...
-
VBScriptでファイルの日時順(降...
-
エクセルVBAで配列内に空白デー...
-
PowerPointVBAでスライドマスタ...
-
VBAで作成するメール(開封確認...
おすすめ情報