2016-05-21 17 views
0

Ich bin neu in C# und als ich ein benutzerdefiniertes Steuerelement in ASP erstellt habe, eine Frage in meinem Kopf erstellt: Warum Override-Funktionen haben kein sender Objekt?Warum haben Übersteuerungsfunktionen kein Absenderobjekt?

Zum Beispiel:

protected override void OnRowCreated(GridViewRowEventArgs e) 

aber wenn wir dieses Ereignis in Code verwenden, gibt es eine Variable vom Typ Objekt mit dem Namen „Absender“

Antwort

5

Diese Methoden beginnend mit Auf nicht brauchen Erhalte wer hat das Ereignis ausgelöst, weil, da sie Teil des Absenders sind, this ist der Absender (die Instanz der Klasse, die die gesamten Ereignisse deklariert).

Wenn sich ein Abonnent für ein bestimmtes Ereignis anmeldet, kann es möglicherweise eine andere Klasse sein und Sie müssen möglicherweise wissen, wer das Ereignis ausgelöst hat.

+0

danke für Ihre Information –

+0

@ArashGhasemiRad Kein Problem, Sie sind willkommen –

0

Methoden mit Signaturen wie protected override void On*(*EventArgs e) ermöglichen es abgeleiteten Typen, Ereignisse auszulösen, die in übergeordneten Klassen definiert sind. Da dies die Methoden sind, die das Ereignis für ihre eigene Instanz auslösen, genügt es, this zu verwenden, um das Absenderobjekt zu erhalten.

+0

danke auch, aber ich kann nur eine "richtige Antwort" wählen –

Verwandte Themen