W IL to jest możliwe. W języku C#: nie.
Ty może używać virtual
uruchomić się metody w rodzaju tego TYP przed ctor, ale to nie jest zalecane i ryzykowne. Ale:
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");
}
}
Jest to zły pomysł, ponieważ nie można zagwarantować, że podklasy są gotowy dla metody-call.
+1 dla odradzających się! –