C# zmienne globalne


(Marcin Obala) #1

Witam

Mam oto kolejny problem. Mam dosyć przeszukiwania internetu ponieważ wszystko co jest tam napisane u mnie nie chce działać.

Mam formę i w niej tablicę "opcje". W drugim formie chce się do tej tablicy odwołać i to działa. Natomiast jak chce coś zmienić w tej tablicy to nie zmienia choćbym nie wiem jak próbował.

MainForm

int[] tab = new int[10];

tab[0]=5

Form2

MainForm forma = new MainForm();

forma.opcje[0]=123;

W tym momencie w tablicy element zero ma nadal wartość 5.

Wie ktoś jak można to zrobić ?


(Fiołek) #2

Ponieważ tworzysz dwie instancje MainForm, każda ma swoją tablicę tab. Musisz odwołać się do tamtej formy lub zrobić tablicę jako zmienną statyczną.


(Marcin Obala) #3

Znalazłem inny sposób ale w tym sposobie potrzebuje takich zmiennych globalnych które nie usuwają się po wyłączeniu forma. Wie ktoś jak takie coś zrobić ?

:edit:

Problem rozwiązany jeszcze inaczej. Na razie spokój mam.


(Fiołek) #4

Zmienne statyczne nie są usuwane po usunięciu formy.


(Broszkiet) #5

A może by tak przekazać przez referencje.


(Zulowski) #6

albo zrobić delegację :wink: