黑马程序员技术交流社区

标题: 一到面试题 [打印本页]

作者: 马胜骁    时间: 2013-3-16 18:38
标题: 一到面试题
class A
    {
        public static int X;
        static A()
        {
            X = B.Y + 1;
        }
    }
    class B
    {
        public static int Y ;
        static B()
        {
            Y = A.X + 1;
        }
        static void Main()
        {
            Console.WriteLine("x={0},y={1}",A.X,B.Y);
            Console.ReadKey();
        }
    }
作者: 林嘉健    时间: 2013-3-16 18:50
调试模式 打个断点自己走一遍 基本就懂了
作者: HM邱刚权    时间: 2013-4-2 16:02
程序运行是从Main()开始的,所以先执行同一个Class B下的B()方法, B()方法调用A(), A()又再调用B() , 这里B()被执行了两次
作者: 曾玉锋    时间: 2013-4-2 18:17
这题是重复发的哈  http://bbs.itheima.com/forum.php ... mp;page=1#pid256920 这个地址去看一下  有详细解答
作者: 张林杰    时间: 2013-4-21 13:14
为啥我运行结果为。。x=1,y=2,调试的时候是先执行B.Y的,难道因为编译器不一样?我用的VS2010 win32位.
Console.WriteLine()中的参数执行顺序是如何的。。?
作者: 崔宏奎    时间: 2013-4-21 16:19
执行了下:

作者: bruce_li    时间: 2013-5-17 00:22
我刚才也试了一下,如果把一楼的代码复制粘贴的话,那么就和楼上的相反了,我查了下,那个static A() 这个方法,在按个msdn里面叫做什么静态构造函数;不过也还是不太懂
C:\Users\Bruce\Desktop\20130517002044.jpg




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2