C# - Poziom: średnio zaawansowany - Events (zdarzenia)

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ม.ค. 2025

ความคิดเห็น • 31

  • @senaszel
    @senaszel 4 ปีที่แล้ว +2

    Super film! Ostatnio miałem świetny wykład o delegatach. Twoj film pociągnął temat jeszcze dalej! Nic tylko tego używać.

  • @pawelk3k
    @pawelk3k 6 ปีที่แล้ว +3

    Mega robota, rozjaśniłeś trochę ten magiczny temat eventów :D

  • @geramfck
    @geramfck 7 ปีที่แล้ว

    Kawał świetnej roboty! Przedstawiasz przemyślane i przejrzyste przykłady, a do tego fajnie tłumaczysz. To jest coś wspaniałego, kiedy ktoś bezinteresownie poświęca swój czas dzieląc się swoją wiedzą i umiejętnościami i to jeszcze w taki profesjonalny sposób. Oczywiście łapka w górę i sub. Z pewnością będę oglądał kolejne materiały :) Pozdrawiam!

    • @Impact-itPl
      @Impact-itPl  7 ปีที่แล้ว

      Witam. Dziękuję za pozytywną opinię. :)

  • @grzegorzbrodowski3164
    @grzegorzbrodowski3164 ปีที่แล้ว +1

    dzięki - pytanie mam - co powinienem zmodyfikować aby w konsoli uzyskać dwa różne czasy > opóźnienie poprzez delay (ThreadSleep(...) - nie działa) - najprawdopodobniej obydwa eventy/delegaty odwołują się poprzez referencję do tego samego obiektu - jakaś podpowiedź?

  • @useruser-bd5nq
    @useruser-bd5nq 6 ปีที่แล้ว +6

    Witam, lekcja bardzo ciekawa. Zastanawia mnie tylko co wnosi dodawanie w klasie AgendaManager metody publisher-a "OnAddedAgenda"? Jest to +- minuta 11:00. Dlaczego nie dodać od razu w miejscu wywołania eventu (//TU !!) bezpośrednio: AddedAgenda(this, EventArgs.Empty)?

  • @grzesiekhallomoto5920
    @grzesiekhallomoto5920 6 ปีที่แล้ว

    robisz kawał dobrej roboty - tak trzymaj!

  • @lsd223
    @lsd223 3 ปีที่แล้ว +1

    Jest to kurs dla średnio zaawansowanych dlatego też, OnAddedAgenda, zamiast tych linijek kody dać po prostu: AddedAgenda?.invoke(this, EventArgs.Empty), działa to tak samo.

  • @PALMERSON
    @PALMERSON 8 ปีที่แล้ว +2

    WRESZCIE !!! :D

  • @Sollmyr
    @Sollmyr 4 ปีที่แล้ว +2

    Cześć, Twoje filmiki są bardzo pomocne. Prosiłbym byś zwiększył czcionkę kodu bo osoby słabiej widzące mają problem z rozczytaniem.

  • @dawid6211
    @dawid6211 8 ปีที่แล้ว +5

    Witam, lekcja jak najbardziej ok, jedyne co miałbym do zarzucenia to może tyle że niepotrzebnie ten przykład jest tak pokomplikowany (rozbicie go na 5 klas), przez co można odnieść wrażenie że eventy to mimo wszystkich ich zalet, również nadmiarowość kodu, no i nazwy klas są do siebie trochę zbyt podobne, przez co czasem ciężko się połapać co jest co. Za to duży plus że pokazuje Pan na początku zawartość poszczególnych klas. Pozdrawiam i jak zawsze leci łapa w górę.

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      Witam. Tu będę bronił tego rozwiązania boooooooo, przyszedł najwyższy czas "ogarniać" więcej klas niż 1-2. Przykładowo w projekcie którym teraz uczestniczy Impact IT jest ponad 1000 klas. Da się z tym żyć. przykłady celowo były rozbite na osobne klasy :)

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      I Oczywiście dziękujemy za łapkę.

    • @dawid6211
      @dawid6211 8 ปีที่แล้ว +1

      No pisząc program wiadomo że jest więcej niż kilka klas, ale kiedy człowiek uczy się czegoś nowego ( a przynajmniej ja tak mam;P), to dobrze jak to jest pokazane w takiej najprostszej, łopatologicznej formie, wtedy najłatwiej zobaczyć pewne zależności, bez np.skupiania myśli na tym która klasa co robiła. Później można by taki przykład stopniowo rozbudowywać, pokazując inne zalety i "ficzery" danej konstrukcji programistycznej. Przykładowo mnie więcej w ten sposób jest napisana książka "C#. Rusz głową!", tam na początku rozdziału jest mega prosto wytłumaczone wszystko, żeby później dla utrwalenia wiadomości napisać jakiś mały program z udziałem nowo poznanej funkcji języka.
      Osobiście nie rozumiem za bardzo czym jest to "amgr.AddAgenda(new Agenda()...", Tworzenie nowego obiektu jednocześnie deklarując go jako argument? Ale jak się później do niego odwołać?

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      Witam. Przekazuję klasę jako argument i odwołuje się do niej w tym momencie
      public void AddAgenda(Agenda newAgenda)
      {
      Console.WriteLine("AddAgenda: Zaczynam dodawać ...");
      OnAddedAgenda(newAgenda);
      Thread.Sleep(3000);
      // TU !!
      OnAddedAgendShorter(newAgenda);
      Console.WriteLine("AddAgenda: Skończyłem dodawać ...");
      }
      Tworzymy ją w locie dla uproszczenia kodu. Jest to standardowa technika i będę to bardziej omawiał w trakcie lekcji MVC już niedługo.

    • @dawid6211
      @dawid6211 8 ปีที่แล้ว

      Ok, dziękuje za wyjaśnienie:) A że tak jeszcze nieśmiało zapytam;P Planuje Pan w przyszłym roku zrobić ten bardziej zaawansowany kurs Unity?

  • @ukaszjozwiak9468
    @ukaszjozwiak9468 2 ปีที่แล้ว +1

    Dobry materiał ale strasznie małe te litery. Nie jest komfortowo tak się musieć przyglądać.

  • @unityberserkers8351
    @unityberserkers8351 8 ปีที่แล้ว +2

    Witam. Warto aby w następnych filmach jakby niektóre skrypty były otwarte obok dla większej czytelności a okno Solution Explorera zminimalizowane. Ale to bardziej kosmetyczna uwaga.
    Będą jeszcze odcinki o eventach?

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      Witam. Eventy będą się się przewijać bardzo często więc ich różnorakie zastosowanie też. Co do większej czytelności to zobaczę co można z tym zrobić.

    • @unityberserkers8351
      @unityberserkers8351 8 ปีที่แล้ว

      Impact IT Sp z o.o.
      Przydałby się odcinek na temat różnic między zdarzeniami a delegatami, bo prawie nigdzie o tym nie wspominają. Tylko w jednej książce znalazłem wyjaśnienie i raz na forach. Mam na myśli miejsce wywoływania i przypisywanie za pomocą operatora =.
      Pozdrawiam :)

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      Witam. W mojej opinii kurs to wyjaśnia. W skrócie delegat to taka "rura" pomiędzy metodami. :) ,a zdarzenie korzysta z delegatu w celu reakcji na działanie zdefiniowane przez nas. To są dwie różne rzeczy, więc raczej nie spodziewam się robienia osobnej lekcji wyjaśniającej tą różnicę.

  • @maciejk125
    @maciejk125 6 ปีที่แล้ว

    Wiesz co by tu się jeszcze przydało? Timestamp kiedy pokazujesz jaka zakładkę. Np po obejrzeniu filmiku chciałbym sobie na spokojnie przeanalizować kod.
    A tak z innej beczki, to po obejzeniu doznałem takiej rasowej eureki niczym z cywilizacji. Nagle inne rzeczy, nie związane z eventami, których tez nie mogłem pojąć, staly sie jasne.

  • @dawid6211
    @dawid6211 8 ปีที่แล้ว

    Witam, a czym się różni np public event Action zdarzenie; od tego z użyciem EventHandler? Bo z tego co widziałem to działają tak samo, a kiedyś natknąłem się na ten z Action i tak go w sumie cały czas używam;P

    • @Impact-itPl
      @Impact-itPl  8 ปีที่แล้ว

      Witam. Action z definicji hermetyzuje metody, która ma jeden parametr, a nie zwraca wartości, natomiast EventHandler służy do obsługi zdarzeń, które nie ma żadnych danych zdarzenia. Prościej jedno jest "osłodzonym delegatem" drugie " osłodzonym delegatem zdarzeń" :)

  • @alleczadpl
    @alleczadpl 4 ปีที่แล้ว

    Bardzo fajne materiały, dzięki. Jest gdzieś może kod z lekcji?

  • @mocnyfullpucha500ml
    @mocnyfullpucha500ml ปีที่แล้ว +1

    fx imba to ty??

  • @marekurbanowicz
    @marekurbanowicz 5 ปีที่แล้ว +1

    Super kurs, ale żeby wnieść coś konstruktywnego to (choć może już wiesz po 3 latach, ale) totalnie źle wymawiasz THREADING, warto poprawić tak na przyszłość :)

    • @Impact-itPl
      @Impact-itPl  5 ปีที่แล้ว

      Jeżeli moja wymowa pana drażni lub razi proponuję zmienić kurs :)

    • @Maharaja1989
      @Maharaja1989 5 ปีที่แล้ว

      Tylko polak cie poprawi :D