Delegaty do obiektów

0

Witam! Mam dwa formy z czego jeden jest głównym oknem aplikacji, a na drugi ma za zadanie wczytywać właściwości jego obiektów. Najpierw chciałem zrobić to za pomocą dziedziczenia i upubliczniania obiektów, ale niestety nie działa. Potem próbowałem zawrzeć wszystkie obiekty w liście i przekazywać je jako całość. Niestety też nie działa. Ostatnie co przychodzi mi do głowy to delegaty. Niestety nie wiem jak zadeklarować delegatę, która wskazuje na obiekt i daje dostęp do jego wartości. Pomożecie? ;)

1

delegat to (mniej-więcej) wskaźnik na funkcję. Nie może istnieć coś takiego jak delegat na obiekt z samej definicji.
Wskaźnik na obiekt to po prostu zwykła referencja.

Jak jedna klasa ma pole: Obiekt costam; a druga klasa powie, klasa1.costam = new Obiekt() { Wartosc = 1, Wartosc2 = 2, ... } to klasa 1 będzie miała dostęp do obiektu i wszystkich jego elementów. Tylko muszą być w jakiś sposób przekazywane obiekty - czy to przez publiczne pola, właściwości, czy metody.

0

Co do dziedziczenia w Twoim przypadku to "nie tędy droga".
Jak opisujesz jakiś system (w sporym uproszczeniu) i byś powiedział obiekt2 jest rozbudowanym/wyspecjalizowanym obiektem1 to masz dziedziczenie, jakbyś raczej powiedział obiekt1 zawiera/ma obiekt2 to jest agregacja.

Próbowałeś przekazać jedną formę do drugiej i tam wybrać z niej wartości, które potrzebujesz? (Mimo, że to słabe rozwiązanie to powinno działać).
Trochę lepszą może być kontener, który będą znały obie formy i będą operowały na obiektach w nim zawartych.
Kolejne napisać kontroler, który będzie agregował obie formy i obiekty zasilające formularze i w nim będzie zawarta większa część logiki.

0

Ruszyło gdy przekazałem formę jako argument. Nie działało wcześniej ponieważ wątki się gryzły(brak dostępu). Taki kod załatwił sprawę:

if (InvokeRequired)
                this.Invoke(new MethodInvoker(delegate()
                { 
    }));

Xiuthechutli, kontener powinien zawierać obiekty czy odwołania do nich?

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