Manipularea și evenimente de strângere

Evenimente în .NET Framework se bazează pe modelul delegat. Modelul Delegat pune în aplicare modelul de observator, care permite unui abonat să se înregistreze la furnizorul de evenimente și de a primi notificări de la el. Expeditorul evenimentului trimite o notificare care să ateste că evenimentul a avut loc, iar chiuveta eveniment primește această notificare și definește răspunsul la acesta. Această secțiune descrie componentele de bază ale modelului delegat, utilizarea aplicațiilor și evoluțiile în punerea în aplicare a evenimentelor din cod.

Un eveniment este un mesaj trimis de un obiect pentru a semnala comiterea oricărei acțiuni. O astfel de acțiune poate fi cauzată de acțiunile utilizatorului, cum ar fi apăsarea unui buton, sau această acțiune se poate datora altor logici de software, cum ar fi schimbarea valorii proprietăților. Obiectul care ridică evenimentul se numește expeditorul evenimentului. Evenimente Expeditorul nu este cunoscut obiect sau metodă, care va primi (mâner), evenimentele generate de către expeditor. Evenimentul este, de obicei, un membru al expeditorului evenimentului; de exemplu, dă clic pe Eveniment este un membru al clasei Button. și evenimentul PropertyChanged - un membru al unei clase care implementeaza interfata INotifyPropertyChanged.

Ca regulă generală, pentru a apela evenimentele, trebuie să adăugați o metodă care este marcat ca fiind protejată și virtuală (în C #) sau protejate supracomandabile și (în Visual Basic). Apelează această metodă OnEventName; de exemplu, OnDataReceived. Metoda trebuie să ia un singur parametru, care definește obiectul datelor eveniment. Oferiți această metodă pentru clasele derivate poate suprascrie logica pentru a apela la eveniment. Clasa derivată trebuie să sune întotdeauna clasa de bază metoda OnEventName, astfel încât delegații înregistrate primesc evenimentul sunt garantate.

NET Framework permite abonaților să se înregistreze pentru notificarea cu privire la evenimente atât static și dinamic. Stivuitoare eveniment statice funcționează pe toată durata de existență de clasă, evenimentele din care le tratează. Stivuitoare eveniment dinamic activat în mod explicit și dezactivată în timpul execuției programului. Acest lucru se întâmplă de obicei atunci când efectuează orice condiții atașate la logica programului. De exemplu, ele pot fi folosite în cazurile în care este necesară o notificare eveniment numai în anumite cazuri sau atunci când aplicația utilizează mai multe manipulare eveniment, iar cel din dreapta este determinată în timpul rulării. În exemplul din secțiunea anterioară arată cum să adăugați în mod dinamic un tratare a evenimentului. Pentru mai multe informații, consultați. În cadrul evenimentului (Visual Basic) și evenimente (Ghid de programare C #).

În cazul în care clasa creează mai multe evenimente, compilatorul creează un câmp pentru fiecare instanță a delegatului evenimentului. În cazul în care numărul de evenimente mari, costurile de resurse de stocare un câmp pentru fiecare delegat poate deveni inacceptabilă. Pentru astfel de cazuri, .NET Framework oferă proprietățile de evenimente care pot fi utilizate împreună cu alte structuri de date (la alegere) pentru a stoca delegați eveniment.

articole similare