为什么我不能在C#中的静态Main方法中声明静态变量

时间:2014-09-13 08:26:26

标签: c# .net

这种实现背后是否有任何原因,为什么我无法声明

  class Defaultclass
  {
     static void Main(string[] args)
     {
       static int x=5;
     }
  }

抛出编译错误

2 个答案:

答案 0 :(得分:2)

这是因为静态变量在类的所有实例中共享它的值。

现在你正在做的是,你在函数中定义一个变量。功能级变量在功能级别编译和执行。因此,静态不能在函数级别声明。

我不知道你要做什么,但你可以使用const或readonly。 但是,它无法取代静态意味着什么。

所以回到函数中的静态变量点。这就是它在编译语言级别定义的方式。

答案 1 :(得分:2)

在C ++中可能有意义,但在C#中,设计师显然认为用这种语言特别值得。

对于类似的效果,您可以将声明移动到类范围。 (它可以从课堂上的所有方法访问,但不仅仅是你想要的方法。)

class Defaultclass
{
    static int x = 5;
    static void Main(string[] args)
    {
    }
}