event in vererbte klasse kann ich nich mehr feuern?? Warum?



  • Hallo Leute,

    ich hab eine Basis klasse, welche ein event hat. Eine abgeleitet klasse soll diese event erben, kann es abe rnich feuern? warum?

    class foo{
    
     protected event EventHandler _ev;
    
     void fooFire(){_Ev(this,null); } //GEHT
    }
    class bar : foo{
    
     void barFire(){_Ev(this,null); } //GEHT nich
    }
    


  • so sollte es funktionieren

    class Publisher
    {
        public delegate void TheEventHandler(object sender, EventArgs e);
    
        public event TheEventHandler TheEvent;
    
        public virtual void RaiseTheEvent(EventArgs e)
        {
            TheEventHandler handler = TheEvent;
    
            if(handler != null)
                handler(this, e);
        }
    }
    

    in der abgeleiteten klasse dann entsprechend RaiseTheEvent überschreiben, oder aber auch nicht...



  • msdn schrieb:

    Ereignisse sind ein spezieller Typ von Multicastdelegaten, die nur innerhalb der Klasse oder Struktur aufgerufen werden können, in der sie deklariert wurden (die Herausgeberklasse). Wenn andere Klassen oder Strukturen das Ereignis abonnieren, werden ihre Ereignishandlermethoden aufgerufen, wenn die Herausgeberklasse das Ereignis auslöst. Weitere Informationen und Codebeispiele finden Sie unter Ereignisse (C#-Programmierhandbuch) und Delegaten (C#-Programmierhandbuch).



  • Danke Leute, ja habe es dann wie bei der ersten Antwort gemacht.


Anmelden zum Antworten