Nowe posty

xx Zdalne polaczenie z posrednikiem pod Ubuntu bez GUI (1)
2019-04-19, 11:11:08
xx bład krytyczny na dysku, dysk jest w LVM (2)
2019-04-19, 06:38:20
xx Przekierowanie na bezpieczną stronę z SSL (1)
2019-04-16, 19:52:43
xx bootloader (4)
2019-04-13, 18:31:03
xx Ubuntu i Bluetooth (1)
2019-04-12, 10:12:18
clip Opera - odtwarzanie niektórych filmów nie działa (1)
2019-04-12, 00:41:50
xx Xubuntu i VirtualBox (2)
2019-04-11, 23:24:54
xx problem konfiguracji sieci (3)
2019-04-10, 17:19:19
xx Wykonam strone internetowa. Tworzenie i projektowanie stron www (0)
2019-04-10, 12:37:26
xx Read- only SD (7)
2019-04-10, 08:28:22

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

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 7
    • Zobacz profil
[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.

Offline Kamil Leduchowski

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 152
    • Zobacz profil
[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");