我知道,静态构造函数总是优先并在任何实例构造函数之前被首先调用。但是考虑一下我有一个实例类和一个静态类的情况。我想知道为什么结果首先来自基类,然后是静态类?我也验证了互换调用,我得到了相应的结果。但是我的想法是错误的吗,无论任何其他实例类如何,都应该首先调用静态类?为什么向我提出这个问题是因为,我在某处看到,当触发包含该类的命名空间时,会自动加载静态类。然后我希望该静态构造函数首先触发。为什么没有发生呢?有人可以以易于理解和简单的方式解释。
public class Base
{
public Base() { Console.WriteLine(" I am from normal Base constructor"); }
static Base() { Console.WriteLine("Hey I am from Static Base"); }
}
public static class Base1
{
static Base1() { Console.WriteLine("I am from Static Constructor"); }
public static void StaticMethod() { Console.WriteLine("I am from Static Method"); }
}
static void Main(string[] args)
{
Base b = new Base();
Base1.StaticMethod();
Console.Read();
}