Globalny obiekt, możliwe kursy

0

Cześć
Przeniosłem się z C++ na C# i chcę zrobić gierkę w windows forms i chciałbym się dowiedzieć, czy mogę zrobić globalnie obiekt, np w Program.cs? czy istnieje coś takiego, jak main w c++, gdy programowałem aplikacje konsolowe. po zrobieniu obiektu w .cs nie znajduje go w formsie, chciałbym zrobić sobie obiekt player, którzy przechowuje statystyki.
Drugie pytanie, czy jest jakiś kurs, który uczy podejścia klasowego i poruszania się między plikami, formami, jakie są zakresy obiektów, zmiennych w tych formach jak szukałem po tutorialach z windows forms, to głównie znalazłem poradniki dotyczące kontrolek, list, przycisków.

2

Możesz skorzystać z klasy statycznej, w której będziesz trzymał wspomniane przez Ciebie statystyki.

I skoro uczysz się od zera, to kierunek WinForms wydaje mi się dość chybiony ;)

0

Czyli mogę jedynie utworzyć zmienne globalne, ale obiekt, na którym mógłbym operować na różnych formsach już jest niemożliwy?

4

Oczywiście, że możesz, np wstawiając ten obiekt do jakiegoś publicznego statycznego pola dowolnej klasy. Tylko to jest bardzo zły pomysł, który sprawi, że Twój program bardzo szybko stanie się trudną w testowaniu i debugowaniu kupą. A jak jeszcze przypadkiem dojdą Ci operacje z różnych wątków, to smród zamieni się w pot, krew i łzy.

2

Możliwy, przekazuj ten swój obiekt w konstruktorach kolejnych form.

0
kzkzg napisał(a):

Możliwy, przekazuj ten swój obiekt w konstruktorach kolejnych form.

Do całkowicie poprawnego działania designera będzie wymagane stworzenie dodatkowo konstruktora domyślnego. Bez tego designer nie zadziała. A żeby się nie pomylić i samemu nie wywołać konstruktora domyślnego, można go oznaczyć atrybutem Obsolete:

[Obsolete("For designer use only", true)]
public MyClass()
{
  InitializeComponent();
}

Mimo wszystko to bardziej poprawne rozwiązanie niż używanie singletona lub klasy statycznej. Chociaż na Twoim miejscu zacząłbym chyba małymi kroczkami, używając właśnie albo singletona albo klasy statycznej. Potem bym zrobił refaktor.

0

Oki, dzięki za pomoc, miałem w zamiarze przechowywać tam coś w rodzaju waluty, której się używa w kilku okienkach(prosta gierka typu clicker na projekt), więc spróbuję może klasy statycznej/singletona.

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