标签:
static
修饰符时,由该声明引入的字段为静态字段(静态变量)。当不存在 static
修饰符时,由该声明引入的字段为实例字段(实例变量)。using System; class Test { static double x = Math.Sqrt(2.0); int i = 100; string s = "Hello"; static void Main() { Test a = new Test(); Console.WriteLine("x = {0}, i = {1}, s = {2}", x, a.i, a.s); } }
产生输出:
x = 1.4142135623731, i = 100, s = Hello
这是因为对 x
的赋值发生在静态字段初始值设定项执行时,而对 i
和 s
的赋值发生在实例字段初始值设定项执行时。
(3)类的静态字段变量初始值设定项对应于一个赋值序列,这些赋值按照它们在相关的类声明中出现的文本顺序执行。如果类中存在静态构造函数,则静态字段初始值设定项的执行在该静态构造函数即将执行前发生。否则,静态字段初始值设定项在第一次使用该类的静态字段之前先被执行,但实际执行时间依赖于具体的实现。
如下示例:
using System; class Test { static void Main() { Console.WriteLine("{0} {1}", B.Y, A.X); } public static int F(string s) { Console.WriteLine(s); return 1; } } class A { public static int X = Test.F("Init A"); } class B { public static int Y = Test.F("Init B"); }
或产生输出
标签:
原文地址:http://www.cnblogs.com/xinaixia/p/4554280.html