Cześć, zrobiłem klasę, której zadaniem jest tylko zwracanie statystyk, tj. liczba zrobionych ruchów przez gracza.
Komunikacja z formularzem występuje tylko za pomocą klasy Game, klasa Game, aby mieć statystyki komunikuje się z innymi klasami tj. Enemy, Player... Wszystko jest robione na właściwościach, poniżej wstawię fragment klasy Game odpowiedzialny za daną statystykę( w klasie Game zrobiłem prywatne pole klasy Statistics statistics)
Game
public int NumberOfPlayerMoves { get { return statistics.MovesPlayer; } }
Idąc do klasy Statistics mam (to jest dopiero początek pisania tej klasy, ale się zaciąłem)
class Statistics
{
private Player player;
//private Enemy enemy;
public int MovesPlayer { get { return player.NumberOfMoves; } }
}
Przechodząc do klasy playera
private int numberOfMoves = 0;
public int NumberOfMoves { get { return numberOfMoves; } }
a pole numberOfMoves jest aktualizowane po każdym ruchu gracza.
Jeżeli w klasie Game zamieniłbym na takie coś jak poniżej,
public int NumberOfPlayerMoves { get { return player.NumberOfMoves; } }
no to wszystko działa jak należy. Jednak chciałbym zrobić klasę, która zajmuje się statystykami gry. Przy kompilacji VS nie wyrzuca żadnego błędu, czy ostrzeżenia. Jednak po uruchomieniu pojawia się taki komunikat:
System.NullReferenceException: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.”
statistics było null.
Wiem, że nie utworzyłem obiektu klasy Statistics, jednak mam pytanie, czy muszę tworzyć taki obiekt? Jeżeli nie muszę to czy moglibyście mnie nakierować jak to zrobić?