En IL, esto es posible. En C#: no.
Usted puede utilizar virtual
para ejecutar un método en un tipo antes ctor de ese tipo, pero no se recomienda y arriesgado. Pero:
class Foo {
public Foo() {
Console.WriteLine("Foo ctor");
SomeMethod(); // BAD IDEA (calling a virtual method in a ctor)
}
protected virtual void SomeMethod() {}
}
class Bar : Foo {
protected override void SomeMethod() {
Console.WriteLine("SomeMethod in Bar");
}
public Bar() : base() { /* only to show call order */
Console.WriteLine("Bar ctor");
}
}
Es una mala idea porque no se puede garantizar que las subclases son listo para el método de guardia.
+1 por desalentado! –