c# obiekt dostępny dla każdej formy

0

Witam Was,

Tworzę niewielką aplikację okienkową w SharpDevelop. Napisałem sobie ciało nowej klasy, która będzie zawierała składowe dane wprowadzane do programu, na których będę operował oraz metody do zapisu / odczytu i operacji na danych.

Prośba o pomoc, gdzie zainicjować obiekt klasy, tak aby był dostępny we wszystkich formach mojej aplikacji ?

Próbowałem na samym początku kodu w funkcji main, lecz nowy obiekt nie jest dostępny w formach i nie mogę operować na nim buttonami.

0

Zadeklaruj go jako "static" lub przekazuj między formami.

0
Utermiko napisał(a):

Zadeklaruj go jako "static"

Niestety to nie jest możliwe, bo klasa ma zdefiniowane wewnętrzne zmienne, co uniemożliwia oznaczenie jej jako static.

0

Najprostsze rozwiązanie, to umieścić obiekt tej Twojej klasy jako statyczną właściwość w klasie Program. Wtedy będziesz miał do niego dostęp w całej aplikacji. Ale to nie jest zbyt profesjonalne rozwiązanie.

0
somekind napisał(a):

Najprostsze rozwiązanie, to umieścić obiekt tej Twojej klasy jako statyczną właściwość w klasie Program. Wtedy będziesz miał do niego dostęp w całej aplikacji. Ale to nie jest zbyt profesjonalne rozwiązanie.

A jakie by było profesjonalne? Pytam z ciekawości mądrzejszych.

3
Ciekawski napisał(a):

A jakie by było profesjonalne? Pytam z ciekawości mądrzejszych.

Wstrzykiwać ten obiekt przez IoC, tylko do tych klas, w których jest potrzebny.

0

Mógłbyś zobrazować na jakimś przykładzie? Nie bardzo wiem o czym piszesz. W przypadku jednej formy mogę obiekt tej klasy dodać do niej i przy inicjalizacji formy tworzyć go, wówczas on jest dostępny w całej formie, ale nie wiem czy jest to dobry pomysł aby do formy dodawać elementy nie związane z samą formą a przechowujące dane operacyjne programu.

1

Singleton - i wszystko jasne ;)
http://msdn.microsoft.com/en-us/library/ff650316.aspx

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