09.1: Klasy jako typy danych

Cele lekcji

Po zakończeniu tej lekcji…

  • Dowiesz się, jak utworzyć właściwość w klasie używającej jednej z innych klas w charakterze typu danych.

 

Dodawanie właściwości za pomocą niestandardowych typów danych

Aktualnie wszystkie właściwości w naszych klasach to ciągi lub liczby całkowite, jednak niekiedy we właściwości trzeba przechować bardziej złożone dane.

Przykładowo w klasie Location chcemy przechować przedmiot wymagany do przejścia do lokacji (np. klucz). Jeśli w tej lokacji dostępne jest zadanie, musimy przechować tę wartość. W tej samej lokacji może również znajdować się potwór,

więc, aby przechować wszystkie te wartości, musimy do klasy Location dodać nowe właściwości.

 

 

Etap 1: Uruchom aplikację Visual Studio i otwórz swoje rozwiązanie.

 

Etap 2: W projekcie Engine zmodyfikuj klasę Location i dodaj nowe właściwości:

 

Teraz już dysponujemy właściwościami pozwalającymi przechowywać te wartości dla każdej lokacji. Ponieważ we właściwości ItemRequiredToEnter musimy przechować obiekt Item, jego typem danych jest Item. Działa to analogicznie jak w przypadku korzystania z typu danych ciąg służącego do przechowywania tekstu we właściwości.

 

Etap 3: Dodaj do konstruktora parametry pozwalające na przyjmowanie niektórych z tych wartości i zapisz je we właściwościach. Zmodyfikuj kod konstruktora, aby wyglądał tak:

 

Po każdym nowym parametrze występuje kod = null. Oznacza to, że przejście do niektórych lokacji nie wymaga żadnych przedmiotów i nie ma w nich zadań ani potworów. Pozwala nam to na wywołanie konstruktora Location bez przekazywania tych trzech wartości. Konstruktor będzie po prostu używał wartości domyślnych, czyli w tym przypadku null. Więc obydwa poniższe wiersze zadziałają tak samo:

 

Etap 4: W projekcie Engine zmodyfikuj klasę Quest i dodaj nową właściwość:

 

Właściwość RewardItem będzie przechowywać przedmioty uzyskiwane przez gracza po ukończeniu zadania.

UWAGA: W filmie parametry w konstruktorze klasy Location znajdują się w dwóch wierszach. Jest to poprawne, ponieważ ostatnim znakiem w pierwszym wierszu jest przecinek, więc program wie, że kolejny wiersz jest kontynuacją poprzedniego. Użyłem takiego formatu, ponieważ wiersz jest długi i niewygodnie się go czytało.

W języku C# koniec wiersza oznacza się średnikiem „;”, zamkniętym nawiasem „)” lub zamkniętą klamrą „}”.

 

Podsumowanie

Umiesz już tworzyć właściwości zawierające złożone wartości. Pozwoli Ci to na przykład na podanie nazwy potwora w lokacji bez potrzeby wykonywania dodatkowego wyszukiwania poza danym obiektem.

 

Łącza do tej lekcji

Kod źródłowy w serwisie GitHub

Kod źródłowy w serwisie Dropbox

Leave a Reply

Your email address will not be published. Required fields are marked *