为什么以这种方式初始化会产生编译时错误?

时间:2016-06-13 16:32:29

标签: c# asp.net

这可能看起来很愚蠢,但任何人都可以告诉我为什么下面的代码会出错?

    class Program
{
    static int abc;
    abc = 110;

    static void Main(string[] args)
    {
        Console.WriteLine(abc);
    }
}

但如果我像这样进行初始化,它会运行!

    class Program
{
    static int abc = 110;

    static void Main(string[] args)
    {
        Console.WriteLine(abc);
    }
}

2 个答案:

答案 0 :(得分:2)

您必须使用静态初始化程序来执行您想要执行的操作(如果不仅仅是分配内联),否则您需要在构造函数或方法中指定它。

    class Program
{
    static int abc;

    static Program(){
       abc = 110;
    }

    static void Main(string[] args)
    {
        Console.WriteLine(abc);
    }
}

查看此page了解详情。

答案 1 :(得分:1)

abc = 110不在方法体内。您可以在声明时初始化变量,但是您不能使用一行代码在方法体外部进行分配。类文件无效。