UserControl配列。各コントロールにはラベルのテキストを設定するメソッドがありますが、NullReferenceExceptionが発生します。助けて!
-
06-07-2019 - |
質問
だから、私は配列を作成します:
TorrentItem[] torrents = new TorrentItem[10];
TorrentItem コントロールには、 SetTorrentName(string name)というメソッドがあります:
private void SetTorrentName(string Name)
{
label1.Text = Name;
}
forループを使用して、次のように10個のTorrentItemを設定しています:
private TorrentItem[] GetTorrents()
{
TorrentItem[] torrents = new TorrentItem[10];
string test = "";
for (int i = 0; i < 10; i++)
{
test = i.ToString();
TorrentItem[i].SetTorrentName(test); //I get a null reference error here.
//What am I doing wrong?
}
解決
10個のオブジェクトへの参照の配列を作成しますが、配列に10個のオブジェクトを作成しません。すべての配列要素は、他の方法で初期化されるまで null
です。
for( int i = 0; i < 10; ++i )
{
torrents[i] = new TorrentItem();
/* do something with torrents[i] */
}
ただし、名前の初期化はおそらくコンストラクタに入れることができます。
他のヒント
各TorrentItemを初期化する必要があります:
for (int i = 0; i < 10; i++)
{
TorrentItem[i] = new TorrentItem(); //Initialize each element of the array
test = i.ToString();
TorrentItem[i].SetTorrentName(test); //I get a null reference error here.
//What am I doing wrong?
}
所属していません StackOverflow