Definirea evenimentelor in clase de obiecte VB.NET

No comments - This post in english

Declararea evenimentelor intr-o clasa de obiecte VB.NET se realizeaza cu ajutorul specificatiei Event. Definirea evenimentului presupune atribuirea denumirii si furnizarea argumentelor.
Prin includerea unui eveniment intr-o clasa de obiecte, obiectele definite pe baza clasei respective pot transmite mesaje asociate evenimentului – raise. Transmiterea se realizeaza prin specificatia RaiseEvent. Asocierea evenimentului cu procedura de tratare a lui se realizeaza prin specificatiile Handles sau AddHandler [...].

Mesajul evenimentului este transmis in cadrul entitatii in care acesta a fost definit. De exemplu, o clasa de obiecte derivata nu poate transmite mesaje asociate evenimentelor mostenite din clasa de baza.
Evenimentele nu au tip de retur, dar pot avea lista de argumente.

'crearea unei clase de obiecte care contine un eveniment,_
handler de eveniment si procedura de asociere eveniment-handler eveniment
 Class GrupOp
 
        'definire handler de eveniment
        Public Sub OpDiferenta(ByVal a As Integer, ByVal b As Integer)
            Dim dif As Integer
            dif = a - b
            MsgBox("Diferenta este: " & CStr(dif))
        End Sub
 
        'definirea unui eveniment
        Public Event Calcul(ByVal x As Integer, ByVal y As Integer)
 
        'definire procedura de asociere eveniment-handler eveniment
        Public Sub SetUpEventHanlderDif(ByVal a As Integer,_
        ByVal b As Integer)
            AddHandler Calcul, AddressOf OpDiferenta
        End Sub
 
    End Class

In exemplul anterior, evenimentul si cele doua metode Sub sunt definite in aceeasi clasa de obiecte. Astfel, specificatia AddHandler nu mai trebuie sa refere evenimentul si handler-ul de eveniment pe baza variabilelor obiect definite pe baza tipului GrupOp.
Metoda OpDiferenta este handler-ul de eveniment. Asocierea dintre evenimentul Calcul si handler-ul de eveniment OpDiferenta se realizeaza prin metoda SetUpEventHandlerDif.

, , , , , , , ,


  1. No comments yet.
(will not be published)

  1. No trackbacks yet.