
開発環境は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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
[VBA]CDOメッセージ送信エラー
-
実行時エラー 3265「要求された...
-
Excelでフィルタをかけると警告...
-
メモリ解放について(ASP)
-
ExcelVBAでのNZ関数について
-
VBAで既に開いている別アプリケ...
-
エクセルVBAでcode128のバー...
-
マクロ初心者です。 インデック...
-
CreateObjectとGetObjectの違い
-
EXCEL VBA オートシェイプナン...
-
findメソッドの変数について
-
VBAで作成するメール(開封確認...
-
数式エディタで記述した数式オ...
-
VBAについてです。 初心者です...
-
エクセルVBAで2つの画像を比較...
-
エクセルのVBAでWEBページの更新
-
ACCESSのFieldの追加方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
VBAからPDFファイルにパスワー...
-
エクセルVBAでcode128のバー...
-
VBScriptからDLL参照設定したい
-
VBAについてです。 初心者です...
-
エクセルマクロエラー「'Cells'...
-
オブジェクトが見つかりません
-
エクセルVBAで配列内に空白デー...
-
Excel VBAでWordの複数ファイル...
-
VBScriptでファイルの日時順(降...
おすすめ情報