Статический конструктор может запускаться после нестатического конструктора. Это ошибка компилятора?

Вывод из следующей программы:

Non-Static
Static
Non-Static

Это ошибка компилятора? Я ожидал:

Static
Non-Static
Non-Static

потому что я думал, что статический конструктор ВСЕГДА вызывался перед нестатическим конструктором.

Я проверил это в Visual Studio 2010, используя .net 3.5 и .net 4.0.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace StaticConstructorBug
{
    class Program
    {
        static void Main(string[] args)
        {
            var mc = new MyClass();

            Console.ReadKey();
        }
    }

    public class MyClass
    {
        public MyClass()
        {
            Console.WriteLine("Non-static");
        }

        static MyClass()
        {
            Console.WriteLine("Static");
        }

        public static MyClass aVar = new MyClass();
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос