Nowe posty

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