输出结果为什么是1和2呢?

tingting74998 2010-12-30 10:45:14
如题,请详细解释。特别是public static int Y = A.x + 1 的Y
class A
{
public static int x;

static A()
{
x = B.Y + 1;
}
}
class B
{
public static int Y = A.x + 1;
static B()
{

}
static void Main()
{
Console.WriteLine("x={0},Y={1}", A.x, B.Y);
Console.Read();
}
}
...全文
143 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2010-12-30
  • 打赏
  • 举报
回复
2楼对,以前有过个类似的
子夜__ 2010-12-30
  • 打赏
  • 举报
回复
很精辟
whycom 2010-12-30
  • 打赏
  • 举报
回复
首先执行static int Y = A.x+1; A.x 这时等于0
因为访问A.x 这个static 变量,所以调用了static 构造函数 static A()
x=B.Y+1 B.Y 这是等于0 所以X=1
接着执行 int y=a.x+1 //这时x=1 所以y=2
tingting74998 2010-12-30
  • 打赏
  • 举报
回复
虽然在大家发帖之前已经弄清楚了,还是谢谢大家的支持~~~~
Myworld88ggc 2010-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 whycom 的回复:]
首先执行static int Y = A.x+1; A.x 这时等于0
因为访问A.x 这个static 变量,所以调用了static 构造函数 static A()
x=B.Y+1 B.Y 这是等于0 所以X=1
接着执行 int y=a.x+1 //这时x=1 所以y=2
[/Quote]+++++

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧