关于C#中的静态构造函数和静态成员

本来感觉自己明白了C#中静态方法和静态成员的调用顺序。一直以为是使用类之前会调用静态构造函数,然后初始化静态成员。但今天在CSDN上看到了一段矛盾的描述,糊涂了。请哪位高手详细解释下。下面是CSDN上的描述: 静态成员在第一次被访问之前并且在调用静态构造函数(如有存在)之前进行初始化。若要访问静态类成员,应使用类名而不是变量名来指定该成员的位置,如下面的示例所示: C# Automobile.Drive(); int i = Automobile.NumberOfWheels; 如果类包含静态字段,请提供在加载类时初始化这些字段的静态构造函数。 “静态成员在第一次被访问之前并且在调用静态构造函数(如有存在)之前进行初始化” “如果类包含静态字段,请提供在加载类时初始化这些字段的静态构造函数”这两句不是自相矛盾么?

静态构造器在静态成员第一次被访问之前调用。示例代码如下:编译运行后就会看到这样的结果 using System;namespace Test
{
public class Program
{
public static void Main()
{
Console.WriteLine("外部函数调用静态属性,其值为: {0}", TestClass.Name);
}
} public class TestClass
{
private static string _name;

public static string Name
{
get
{
return _name;
}
set
{
_name = value;
}
}

static TestClass()
{
_name = "abc";
Console.WriteLine("静态变量 name 在静态构造去中被初始化, 初始值为: {0}", _name);
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-25
都是 关于static 理解不够透彻
相似回答