Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: [C#] Wyjątek we właściwości  (Przeczytany 2938 razy)

vous93

  • Gość
[C#] Wyjątek we właściwości
« dnia: 2014-03-27, 12:40:53 »
Częścią zadania jakie mam do zrobienia jest
Cytuj
Pobranie elementu powinno być zaprogramowane jako właściwość. Efektem ubocznym pobrania powinno być usunięcie elementu z bufora. Pobierany jest zawsze najdawniej dodany element. W przypadku próby pobrania elementu z pustego bufora program powinien zgłosić wyjątek.
Mój kod wygląda tak:
public T Zwroc
        {
            get
            {
                if (Licznik > 0)
                {
                    Licznik--;
                    return TabBufor[Licznik];
                }
                else
                {
                    Console.WriteLine("Pusty bufor!");
                    return default(T);
                }
            }
               set{
                   TabBufor[Licznik]=default(T);
               }
        }
Tutaj ten wyjątek mam jako zwrócenie napisu Pusty bufor! i wyswietlenie wartosci default(T). Nie jestem pewien czy na pewno o to chodziło. W internecie jest duzo o try i catch ale nie potrafię tego zaimplementować. Proszę o pomoc.

darkdancer

  • Gość
[C#] Wyjątek we właściwości
« Odpowiedź #1 dnia: 2014-03-27, 13:29:33 »
Cytat: vous93
Nie jestem pewien czy na pewno o to chodziło.
Raczej nie o to, wypisanie komunikatu na ekran to nie to samo co zgłoszenie wyjątku. Poza tym przy pustym buforze akcesor, czy jak tam się getter na polski tłumaczy, nie powinien nic zwracać, to programista który będzie pisał kod korzystając z Twojej biblioteki powinien wyjątek obsłużyć.
Tak się podobno nie powinno wg. dokumentacji MSDN robić i nie wiem czy to zadziała ale możesz spróbować w get:
else throw new Exception("Bufor jest pusty i nie chce mi sie czytac dokumentacji wiec zrobilem to na szybko bez implementacji wlasnej klasy wyjatku i za pomoca forum, do tego linuksowego haha ale i tak chce piatke");