using System; class Base { public Base() { Console.WriteLine("Base::Base"); ((Derived)this).Foo(); } public void Foo() { Console.WriteLine("Base::Foo"); } } class Derived : Base { public Derived() { Console.WriteLine("Derived::Derived"); } public void Foo() { Console.WriteLine("Derived::Foo"); } } public class Test { public static void Main() { new Derived(); } }