直接上代码
public class Test
{
private string no;
public static string msg;
static Test()
{
Console.WriteLine("执行静态代码块");
msg = "静态代码块";
}
public Test()
{
Console.WriteLine("执行非静态代码块");
msg = "静态代码块";
}
}
static void Main(string[] args)
{
Console.WriteLine("-----------------");
Console.WriteLine(Test.msg);
Console.WriteLine("-----------------");
Test t2 = new Test();
Console.WriteLine("-----------------");
Test t3 = new Test();
Console.ReadKey();
}
static void Main(string[] args)
{
Console.WriteLine("-----------------");
Test t1 = new Test();
Console.WriteLine("-----------------");
Test t2 = new Test();
Console.WriteLine("-----------------");
Test t3 = new Test();
Console.ReadKey();
}
结果:

上面两段main函数的执行结果相同,都如上图所示。我们通过上面执行后我们可以看出,静态代码块的执行时机为,在第一次调用类中的静态变量前执行或在第一次实例化类时执行
本文深入探讨了C#中静态代码块的执行机制,解释了其在类加载和实例化过程中的作用,通过示例代码展示了静态代码块与非静态代码块的区别,以及它们在不同情况下的执行时机。
996

被折叠的 条评论
为什么被折叠?



