Dado el siguiente código, ¿por qué no se llama al constructor estático de "Exterior" después de la primera línea de "Principal"?¿Por qué no se llama al constructor estático de la clase primaria cuando se invoca un método en una clase anidada?
namespace StaticTester
{
class Program
{
static void Main(string[] args)
{
Outer.Inner.Go();
Console.WriteLine();
Outer.Go();
Console.ReadLine();
}
}
public static partial class Outer
{
static Outer()
{
Console.Write("In Outer's static constructor\n");
}
public static void Go()
{
Console.Write("Outer Go\n");
}
public static class Inner
{
static Inner()
{
Console.Write("In Inner's static constructor\n");
}
public static void Go()
{
Console.Write("Inner Go\n");
}
}
}
}
Es gracioso, saqué mi copia de C# In Depth para ayudar a descubrir por qué. –