🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
4 messages
4 total messages Started by iiui Mon, 26 Apr 2004 14:48
delegat - praktyczne uzycie
#1007
Author: iiui
Date: Mon, 26 Apr 2004 14:48
6 lines
894 bytes
witam!

cztam o delegatch, czy moglibyscie podac przyklady praktycznego ich uzycia,
po co sie je uzywa, na co, itp. jak dla laika.

dzieki
Re: delegat - praktyczne uzycie
#1008
Author: Marek Janaszewski USUNTO. z adre...
Date: Mon, 26 Apr 2004 22:01
51 lines
3349 bytes
iiui wrote:
> witam!
>
> cztam o delegatch, czy moglibyscie podac przyklady praktycznego ich
> uzycia, po co sie je uzywa, na co, itp. jak dla laika.
[...]

Witam!

Potrzebne są do obsługi zdarzeń. W C# są delegat, w innych językach
spotkałem się ze zmiennymi typu proceduralnymi albo interfejsami.

Obiekt przetwarza jakiś własny kod i chce dać możliwość wywołania w
odpowiednim momencie kodu programisty. Realizowane to jest właśnie przez
zdarzenia. Sprowadza to się przechowywania referencji na metody mają być
właśnie wywołane w wyniku obsługi zdarzeń. Metody takie właśnie przypina
programista do uchwytów zdarzeń w obiekcie, który odpala zdarzenia.

Zdarzenia mogą pochodzić z wewnątrz obiektu ale niejako z zewnątrz. Jako
zdarzenia systemowe zwykle od użytkownika. Np. naciśniecie klawisza, ruch
muszką, ale także upływający czas. To znaczy zamiast wywołania metody, które
gdzieś tam wywołuje zdarzenie obiekt otrzymuje komunikat od systemu
operacyjnego. Komunikat (message) jest przetwarzana przez obiekt i zwykle
zamieniana na wywołanie zdarzenia. Zdarzenie daje możliwość dopisanie
dodatkowej obsługi komunikatu. Można nazwać, że kod jest wywoływany wtedy
asynchronicznie.

Zdarzenia mogą także służyć od uelastycznienia używania obiektów i wiązanie
ze sobą wielu obiektów. Zamiast stworzyć po prostu wywoływać metody innych
obiektów można stworzyć wielokrotnie wykorzystywany obiekt z przygotowanymi
do użytku zdarzeniami. Aby podpiąć się do tego obiektu nie trzeba zmieniać
kodu obiektu. Obiekt także nie musi importować obiektów, które wykorzystuje.
Np. może być przeniesiony do innego projektu i tego nie zauważyć. Dopiero
inne obiekty mogą się do niego podpiąć przez zdarzenie.

Generalnie takie programowanie nazywa się sterowanym zdarzeniami,
event-driven: http://en.wikipedia.org/wiki/Event-driven_programming

Także są dwa aspekty zastosowania zdarzeń obsługiwanych w C# przez delegaty:

1. Zdarzenia od sprzętu, przez przerwania trafiają do systemu operacyjnego a
następnie wysyłane są do procesów jako komunikaty Windows znane jeszcze z
Win32 API. Sam system operacyjny także może inicjować własne zdarzenia aby
komunikować się z procesem.

2. Rozwiązywanie problemów w tworzeniu wielokrotnie używanego kodu.

-- 
Pozdrawiam,
Marek Janaszewski
[ j_m...@gazeta.pl ]
Re: delegat - praktyczne uzycie
#1009
Author: Tomasz Kubacki
Date: Tue, 04 May 2004 14:23
8 lines
1131 bytes
hej,

Polecam:
http://www.codeguru.com/Csharp/Csharp/cs_delegates/eventhandling/article.php/c4769/

pozdrawiam,

Tomek Kubacki
Re: delegat - praktyczne uzycie
#1010
Author: zolo
Date: Wed, 26 May 2004 06:19
11 lines
1102 bytes
> witam!
>
> cztam o delegatch, czy moglibyscie podac przyklady praktycznego ich
uzycia,
> po co sie je uzywa, na co, itp. jak dla laika.
>
> dzieki

Poczytaj sobie o wywolywaniach asynchronicznych funkcji.

Pozdrawiam.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads