Im Buch "Visual C# 2012" schreibt der Autor, dass Ereignisse nicht vererbt werden können.
"5.2.6 Ereignisse in der Vererbung
Ereignisse können nur in der Klasse ausgelöst werden, in der sie definiert sind. Mit anderen Worten bedeutet das auch, dass Ereignisse nicht vererbt werden."
Nehm ich aber seinen Code 1:1 dann steht mir das Ereigniss auch für GraphicCircle zur Verfügung und wird auch ausgelösst?
"5.2.6 Ereignisse in der Vererbung
Ereignisse können nur in der Klasse ausgelöst werden, in der sie definiert sind. Mit anderen Worten bedeutet das auch, dass Ereignisse nicht vererbt werden."
Nehm ich aber seinen Code 1:1 dann steht mir das Ereigniss auch für GraphicCircle zur Verfügung und wird auch ausgelösst?
Code:
class Program { static void Main(string[] args) { GraphicCircle gc = new GraphicCircle(); gc.InvalidMeasure += gc_InvalidMeasure; gc.Radius = -10; Console.ReadLine(); } static void gc_InvalidMeasure(object sender) { Console.WriteLine("Ereignishandler: " ); } // Basis Class Circle public delegate void InvalidMeasureEventHandler(Object sender); public class Circle { public event InvalidMeasureEventHandler InvalidMeasure; protected double mRadius = 0 public Circle() { } public Circle(double radius) { Radius = radius; } public virtual double Radius { get { return mRadius; } set { if (value >= 0) { mRadius = value; } else { OnInvalidMeasure(); } } } protected virtual void OnInvalidMeasure() { if (InvalidMeasure != null) InvalidMeasure(this); } } // Erbende Classe GraphicCircle public class GraphicCircle : Circle { public GraphicCircle() { } public GraphicCircle(double radius) : base(radius) { } } }
Comment