Dato il seguente codice, perché il costruttore statico di "Outer" non è chiamato dopo la prima riga di "Main"?Perché il costruttore statico della classe genitore non viene chiamato quando si richiama un metodo su una classe nidificata?
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");
}
}
}
}
Questo è divertente, ho tirato fuori la mia copia di C# in profondità per aiutare a capire perché. –