Witam wszystkich serdecznie. Jestem początkujący więc proszę o wyrozumiałość.
Moja aplikacja posiada kilka klas. Tak jak w temacie chcę przepisać tablice z klasy 1 do tablicy w klasie 2
Z grubsza aplikacja wygląda tak
Form 1
{
Klasy.Selekcja selekcja = new Klasy.Selekcja();
Klasy.Krzyzowanie krzyzowanie = new Klasy.Krzyzowanie();
krzyzowanie.Zmienne(rozmiar_populacji);
krzyzowanie.UtworzTablice();
selekcja.PrzepiszTabliceDoKrzyzowania();
}
Class1
{
Klasy.Krzyzowanie krzyzowanie = new Krzyzowanie();
public void PrzepiszTabliceDoKrzyzowania()
{
for (x = 0; x < rozmiar_populacji; x++)
{
krzyzowanie.DodajDoReal(x, tablica_real[x]);
}
}
}
Class2
{
public double[] tablica_real1;
int rozmiar_populacji;
// ----------------------------------------------------->>
public Krzyzowanie()
{
}
public void Zmienne(int rozmiar_populacji)
{
this.rozmiar_populacji = rozmiar_populacji;
}
public void UtworzTablice()
{
tablica_real1 = new double[rozmiar_populacji];
}
public void DodajDoReal(int index, double wartosc)
{
tablica_real1[index] = wartosc;
}
}
Schemat jaki jest powyżej taki musi być, ze względu na finalny kształt i działanie programu. Nie chcę tworzyć kolejnej klasy która by tylko przechowywała tablice, gdyż moim zdaniem mija się to kompletnie z celem.
Oczywiscie w Class2 tablica jest w pełni tworzona o odpowiedniej wielkości (rozmiar identyczny jak tablicy w Class1). Obie tablice są typu double.
W Class2 zmienna 'wartosc' przyjmuje przekazana wartość, natomiast już " tablica_real1" wyrzuca mi null i otrzymuje komunikat "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu." Posiadam Visual Studio w języku angielskim i nie rozumiem czemu wyrzuca komunikat w języku polskim, ale to już mniejsza o to.
Kombinowałem na różne sposoby i efekt końcowy problemu był ten sam. Będę serdecznie wdzięczny za pomoc w rozwiązaniu mojego problemu.
Jeśli jest taka konieczność, to mogę ew. wrzucić całą aplikację.
Pozdrawiam
tMDshenk