您的位置:首页 > 编程语言 > C#

“茴”字的几种写法——C#中静态构造函数和静态变量文字执行顺序问题

2010-04-02 16:24 363 查看
using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication2

{

public class A

{

public static int X;

static A()

{

X = B.Y+1;

}

}

public class B

{

public static int Y;

static B()

{

Y = A.X+1;

}

}

class Program

{

static void Main(string[] args)

{

Console.WriteLine("X = {0},Y = {1}",A.X,B.Y);

Console.Read();

}

}

}

Main方法是程序的入口,Console.WriteLine( "X={0},Y={1}", A.X, B.Y );中先访问的是A.X,因为X是静态的成员所以在访问X之前A的静态构造函数必定已经执行完成,A的静态构造函数中又访问了B.X,同理在A的静态构造函数中获得B.Y的值之前B的静态构造函数必定已经执行完成,由于在完成A的静态构造函数中X=B.Y + 1的中途中执行流程跳到了B的静态构造函数,所以此时A.X还是默认值0,接着在B的静态构造函数被执行完成后得以在A的静态函数中成功获得B.Y,此时B.Y=A.X + 1=0+1=1,接着A.X=1+1=2
所以输出的是X=2,Y=1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐