La salida del siguiente programa es:El constructor estático se puede ejecutar después del constructor no estático. ¿Es esto un error del compilador?
Non-Static
Static
Non-Static
Es esto un error del compilador? Que esperaba:
Static
Non-Static
Non-Static
porque pensé que el constructor estático se llama SIEMPRE antes de que el constructor no estático.
Probé esto con Visual Studio 2010 utilizando .net 3.5 y .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();
}
}
¿Puede explicar por qué espera que? Porque eso no es lo que la especificación dice esperar. –