Calling an overridable method from a constructor could result in failures or strange behaviors when instantiating a subclass which overrides the method.
* If the behavior of the child class method depends on fields that are initialized in the child class constructor, unexpected behavior (like a ``++NullReferenceException++``) can result, because the fields aren't initialized yet.
public virtual void DoSomething() // can be overridden
{
...
}
}
public class Child : Parent
{
private string foo;
public Child(string foo) // leads to call DoSomething() in Parent constructor which triggers a NullReferenceException as foo has not yet been initialized