[C#] Wartosci poczatkowe tablicy

0

Witam,

Mam problem z podanym kodem :

CAdres[] rekord = new CAdres[5];

for (int i = 1; i < 5; i++)
{
	rekord[i].strImie = Convert.ToString(i);
	rekord[i].strNazwisko = Convert.ToString(i);			
}

Proba skompilowania konczy sie bledem : "Object reference not set to an instance of an object". Debbuger wyswietla, ze blad wyskakuj eprzy linijce " rekord[i].strImie = Convert.ToString(i);".

Moje pytanie - co ten błąd oznacza i jak się go pozbyc ?

0

Błąd ten oznacza, że obiekt nie jest zainicjowany (nie jest stworzony) i ma wartość null. Inicjalizacja tablicy nie powoduje niestety inicjalizacji jej elementów. Pożądany przez Ciebie efekt uzyskasz stosując poniższy kod (korzysta on z konstruktora klasy, której kod podałeś w poście wyrzuconym do kosza):

CAdres[] rekord = new CAdres[5];
for (int i = 0; i < 5; i++) // Tablice indeksujemy od zera!
    rekord[i] = new CAdres(Convert.ToString(i), Convert.ToString(i));

Jest jeszcze jedna sprawa. Jeżeli chcesz wypełnić wszystkie pięć elementów tablicy, musisz zacząć indeksować od zera a nie od jedynki.

0

Thx - przesiadam się z C++ na C# no i nie pojmuję jeszcze wszystkich jego aspektów - a to, że indeksujemy tablicę od 0 to wiem, 1 wpisałem tylko, bo próbowałem pozbyć się błędu. Jeszcze raz thx.

1 użytkowników online, w tym zalogowanych: 0, gości: 1