这道题的结果是什么,为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:15:47
using System;
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()
{
int a = A.X;
int b = B.Y;
Console.WriteLine("X={0},Y={1}", A.X, B.Y);

Console.ReadLine();
}
}
请帮忙说一下这个程序的执行顺序,我按F11调试,感觉有些不懂。怎么是class B先执行,再执行class A 呢?而且这两个类好像互相调用。

你的主函数在class B里面,他当然先执行class B了
所有C的程序都是从主函数开始
对于结果是多少,系统自动调用构造函数
因为X和Y都是static的,所以X和Y的位模式全为0,也就是X和Y初值为0
所以结果X=1,Y=2

X=1,Y=2

静态变量系统默认初始化为 0

类加载时会自动执行静态构造函数

这个能运行吗?X和Y都没有初始值。

感觉怪怪的,期待答案~

拜托,别乱发好吗

去C#区发对你难道不是更好吗