metoda dodająca obiekt do listy

metoda dodająca obiekt do listy
K4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Witam, muszę stworzyć 2 metody, jedna, która tworzy nowy obiekt klasy i zapisuje jego wartości w liście, oraz druga, która te wartości odczytuję. Napisałem coś takiego:

Kopiuj
public void DodajOcene(string nazwaPrzedmiotu, string data, double wartosc)
        {
            ocena ocena = new ocena(nazwaPrzedmiotu, data, wartosc);
            oceny.Add(ocena);
        }

        public void wypiszOceny()
            {
            foreach (ocena ocena in oceny)
            {
                Console.WriteLine(ocena);
            }
        }

Jednak po zainicjowaniu metod wyświetla mi w konsoli nazwę klasy. czy mógłby ktoś objaśnić co jest źle i jak to zrobić poprawnie? Będę bardzo wdzięczny.

BO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 214
2

Console.WrtieLine() drukuje to co dostało w nawiasie używając metody toString(), a obiekt domyślnie zwraca nazwę klasy aby to zmienić trzeba nadpisać metodę toString() dla twojej klasy.

Kopiuj
public override string ToString()
{
  return $"{nazwaPrzedmiotu} {data} {wartosc}";
}

Taką metodę możesz dodać w twojej klasie by to zadziałało.

maszrum
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 219
2

Dodaj przesłonięcie metody ToString() w klasie ocena (btw. nazwy klas powinny być PascalCase).

Kopiuj
public override string ToString()
{
    // ...
}
AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
1

Ja byłbym zwolennikiem kontrolowania pól, które podlegają drukowaniu w miejscu, gdzie to następuje.
ToString() szybko okazuje się nieelastyczny - tu chcemy pola ABCD, tam pola BCG itd ... (choć i tak warto go sensownie zaimplementować)

Kopiuj

foreach (Ocena ocena in oceny)
            {
                Console.WriteLine("Dnia: {0} Przedmiot {1} ocena {2}", ocena.Data, ocena.Przedmiot, ocena.Wartosc);
            }

Lub w innej pisowni, tu masz więcej możliwości:
http://itcraftsman.pl/c-metody-wyswietlania-stringow/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.