Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: [C#] Wyjątek we właściwości  (Przeczytany 2917 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");