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!
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ź?
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)?
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.
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ę.
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 :)
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ć?
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.
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 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 :)
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ę.
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.
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
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ń" :)
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ść :)
Super film! Ostatnio miałem świetny wykład o delegatach. Twoj film pociągnął temat jeszcze dalej! Nic tylko tego używać.
Mega robota, rozjaśniłeś trochę ten magiczny temat eventów :D
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!
Witam. Dziękuję za pozytywną opinię. :)
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ź?
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)?
robisz kawał dobrej roboty - tak trzymaj!
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.
WRESZCIE !!! :D
Cześć, Twoje filmiki są bardzo pomocne. Prosiłbym byś zwiększył czcionkę kodu bo osoby słabiej widzące mają problem z rozczytaniem.
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ę.
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 :)
I Oczywiście dziękujemy za łapkę.
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ć?
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.
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?
Dobry materiał ale strasznie małe te litery. Nie jest komfortowo tak się musieć przyglądać.
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?
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ć.
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 :)
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ę.
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.
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
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ń" :)
Bardzo fajne materiały, dzięki. Jest gdzieś może kod z lekcji?
fx imba to ty??
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ść :)
Jeżeli moja wymowa pana drażni lub razi proponuję zmienić kurs :)
Tylko polak cie poprawi :D