private PropertyDelegate _handler;
public Circle() : this(0)
public PropertyDelegate handler
public delegate void PropertyDelegate();
Console.WriteLine("Area: " + Math.PI * Math.Pow(R, 2));
Console.WriteLine("Length: " + 2 * Math.PI * R);
public void Property(PropertyDelegate callback)
public static void Main()
Circle circle = new Circle(4);
circle.handler = circle.Area;
circle.Property(circle.handler);
circle.handler = circle.Length;
circle.Property(circle.handler);