- PR -

【C#】クラスを多次元配列にすることは可能ですか?

1
投稿者投稿内容
セルカー
ベテラン
会議室デビュー日: 2004/04/08
投稿数: 70
投稿日時: 2007-10-01 20:47
VS2005で開発をしております。

データベースにおいて、2つのカラムをキーとするテーブルから引っ張ってきた値を、VBのプロパティのように、予め作成しておいたクラスを2次元配列にして、それぞれの値に代入して使おうとしているのですが、配列として作った(つもりの)クラスを呼び出す際に「オブジェクト参照がオブジェクトインスタンスに設定されていません」のエラーが出てしまいます。VBのプロパティのように使うことは出来ないのでしょうか?↓↓↓がソースです。

------------------------------------
public partial class frmHoge : Form
{
private clsHoge[,] lstHoge = new clsHoge[10, 10];

---------省略------------

private void frm_Hoge_Shown(object sender, EventArgs e)
{
using (SqlConnection objConn = new SqlConnection(SQLコネクション用の文字列))
{
try
{
          SqlDataReader objReader = ストアドを実行するメソッド;

// 結果セット<>0件なら、値を読み込みます
if (objReader.HasRows == true)
{
int iID1; // キー1
int iID2; // キー2

while (objReader.Read())
{
iID1 = objReader.GetInt32(0);
iID2 = objReader.GetInt32(1);
            lstHoge[iID1, iID2].Title = objReader.GetString(2);ToString(); ←ここでエラーになります }
// DataReaderを閉じます
objReader.Dispose();
}
}
catch
{
---------省略------------

class clsHoge
{
private String strTitle;

public String Title
{
get { return strTitle; }
set { this.strTitle = value; }
}

---------省略------------

------------------------------------

ご教授のほど宜しくお願いします
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-10-01 21:45
引用:

セルカーさんの書き込み (2007-10-01 20:47) より:
            lstHoge[iID1, iID2].Title = objReader.GetString(2);ToString(); ←ここでエラーになります }


配列は作ってあるけど、インスタンスは作られていないから。
セルカー
ベテラン
会議室デビュー日: 2004/04/08
投稿数: 70
投稿日時: 2007-10-02 08:12
ありがとうございます。

DataReaderを読み込む際にインスタンスを代入するようにコードを設定したら、動きました。
1

スキルアップ/キャリアアップ(JOB@IT)