Witam wszystkich serdecznie. W klasie mam metodę która tworzy mi potrzebne tablice. Po wywołaniu jednej z metod chcąc przepisać znak z jednej tablicy znaków do drugiej tablicy znaków, wyrzuca mi błąd "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu." Co ciekawe jedna z tablic char posiada przypisana do niej wartość. Ma ktoś sugestie w czym jest problem ?
skrawek kodu:
public void UtworzTablice()
{
tablica_real1 = new double[rozmiar_populacji];
tablica_Funk_celu = new double[rozmiar_populacji];
tablica_binarna = new string[rozmiar_populacji];
tablica_pozycji_mutacji = new string[rozmiar_populacji];
tablica_binarna_zmutowana = new string[rozmiar_populacji];
tablica_real2 = new double[rozmiar_populacji];
tablica_Funk_celu_nowa = new double[rozmiar_populacji];
temp_stary_osobnik = new char[dlugosc_chromosomu];
temp_nowy_osobnik = new char[dlugosc_chromosomu];
}
public void Mutowanie()
{
for (x = 0; x < rozmiar_populacji; x++)
{
temp_stary_osobnik = tablica_binarna[x].ToCharArray();
for (y = 0; y < dlugosc_chromosomu; y++)
{
r = Math.Round(losuj.NextDouble(), dokladnosc);
if (r <= prawdopodobienstwo_mutacji)
{
if (temp_stary_osobnik[y] == 1)
{
temp_nowy_osobnik[y] = Convert.ToChar(0);
if (y == 0)
{
temp_pozycja_mutacji = tablica_pozycji_mutacji + Convert.ToString(y+1);
}
else
{
temp_pozycja_mutacji = tablica_pozycji_mutacji + ", " + Convert.ToString(y + 1);
}
}
if (temp_stary_osobnik[y] == 0)
{
temp_nowy_osobnik[y] = Convert.ToChar(1);
if (y == 0)
{
temp_pozycja_mutacji = tablica_pozycji_mutacji + Convert.ToString(y + 1);
}
else
{
temp_pozycja_mutacji = tablica_pozycji_mutacji + ", " + Convert.ToString(y + 1);
}
}
}
if (r >= prawdopodobienstwo_mutacji)
{
temp_nowy_osobnik[y] = temp_stary_osobnik[y]; // W tym miejscu wyrzuca błąd
}
}
tablica_binarna_zmutowana[x] = Convert.ToString(temp_nowy_osobnik);
tablica_pozycji_mutacji[x] = Convert.ToString(temp_pozycja_mutacji);
temp_stary_osobnik = null;
temp_nowy_osobnik = null;
temp_pozycja_mutacji = null;
}
}
tablica char temp_stary_osobnik posiada przypisane do niej wartości, natomiast tablica temp_nowy_osobnik ma wartość null mimo iż została utworzona.