关于静态变量与静态构造函数的执行顺序
sdfdl 2009-12-03 05:09:06 //环境vs2005,代码如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace TestInitialize
{
class Program
{
static void Main(string[] args)
{
Console.ReadLine();
Console.WriteLine("Programme Begin");
Base Test = Base.instance;
Console.ReadLine();
}
}
class Base
{
Base()
{
Console.WriteLine("Base Class constructor has been initialized");
}
//static Base()
//{
// Console.WriteLine("Base Class static constructor has been initialized");
//}
static public Base instance = new Base();
}
}
//问题:
1、以上执行结果为:
Base Class constructor has been initialized
等待输入_
怎样解释class Base的静态变量在main的Base Test = Base.instance;之前就进行初始化?
2、解除注释部分,程序等待输入,结果为:
等待输入_
Base Class constructor has been initialized
Base Class static constructor has been initialized
静态变量的赋值先于静态构造函数的执行?这个顺序是固定的么?导致与问题1的效果的差异的原因?