日期:2014-05-19  浏览次数:20989 次

请问一下,以下代码怎么能通过编译呢?
X和Y,A.X,B.Y都没有赋值初始值过,怎么不报错而默认A.X是0呢?奇怪阿

using   System;
using   System.Collections.Generic;
using   System.Text;

namespace   ConsoleApplication1
{
        class   Program
        {
                public   static   int   Y   =   A.X   +   1;

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

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

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

}



------解决方案--------------------
int型默认值是0
------解决方案--------------------
这题目好老
------解决方案--------------------
你不给它赋值的话系统会给它默认值的!
------解决方案--------------------
老兄,劝你先看看C#基础教程。特别是 值类型 与 引用类型。