UserControl 배열, 각 컨트롤에는 레이블의 텍스트를 설정하는 메소드가 있지만 NullReferenceException을 얻습니다. 돕다!

StackOverflow https://stackoverflow.com/questions/1613350

문제

그래서 배열을 만듭니다.

TorrentItem[] torrents = new TorrentItem[10];

그만큼 Torrentitem 컨트롤에는이라는 메소드가 있습니다 settorrentName (문자열 이름):

private void SetTorrentName(string Name)
{
    label1.Text = Name;
}

나는 루프를 사용하여 10 개의 토렌지를 채우고 있습니다.

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] */
}

그러나 이름 초기화는 아마도 생성자에 넣을 수 있습니다.

다른 팁

각 개별 토렌지를 초기화해야합니다.

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?
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top