Order of calling constructors
<pre><code>class Program
{
    static void Main(string[] args)
    {
        Foo.Calc("Foo");
    }   
}

public abstract class Base
{
    protected static Func&lt;string, int&gt; CalcFunction;

    public static void Calc(string str)
    {
        Console.WriteLine(CalcFunction(str));
    }
}

public class Foo : Base
{
    static Foo() 
    {
        CalcFunction = s =&gt; { return s.Length; };
    }
}
</code></pre>

<p>When I try to call Foo.Calc("Foo"); I have exception "Object reference not set to an instance of an object."
because static constructor of Foo was not called and CalcFunction is null. I don't want to use Init method for Foo class and call it before calling Calc().</p>

<p>Can I change order of calling constructors?</p>
