2009年8月23日

拨云见日---浅谈静态字段与静态构造函数之间的初始化关系以及执行顺序(下)

摘要: 在上篇中留下了一个问题,想来有心的读者已经自行解决问题并且得出了自己的结论。事实上,程序并不是象通常的函数调用,进进入主调函数,然后进入被调函数。在这里,通过单步执行,可以看到程序先进入到类A中进行静态成员的初始化,然后进入到类B中进行B的静态成员的赋值,最后才进入Main函数。我们可以猜测,编译器根据Main函数中所用到的类的先后顺序对类的静态成员进行初始化。在我们的例子中,编译器检查到引用了类... 阅读全文

posted @ 2009-08-23 19:04 大笨 阅读(622) 评论(2) 推荐(2) 编辑

拨云见日---浅谈静态字段与静态构造函数之间的初始化关系以及执行顺序(上)

摘要: 偶然看到一道面试题,题目如下: [代码]要求写出结果。当然,因为我不是在面试的情况下遇到这题,所以直接在电脑上运行了,结果是:。回过头来想想,当执行Console.WriteLine("X={0},Y={1}", A.X, B.Y)一句之时,求取A.X的顺序在前,因此程序首先进入到A的静态构造函数中去计算X的值,而X的值依赖于B的静态成员Y,所以程序应该跳转到B中去求取Y的值,而Y=A.X+1,此... 阅读全文

posted @ 2009-08-23 01:49 大笨 阅读(624) 评论(5) 推荐(0) 编辑

导航