这种实现背后是否有任何原因,为什么我无法声明
class Defaultclass
{
static void Main(string[] args)
{
static int x=5;
}
}
抛出编译错误
答案 0 :(得分:2)
这是因为静态变量在类的所有实例中共享它的值。
现在你正在做的是,你在函数中定义一个变量。功能级变量在功能级别编译和执行。因此,静态不能在函数级别声明。
我不知道你要做什么,但你可以使用const或readonly。 但是,它无法取代静态意味着什么。
所以回到函数中的静态变量点。这就是它在编译语言级别定义的方式。
答案 1 :(得分:2)
在C ++中可能有意义,但在C#中,设计师显然认为用这种语言特别值得。
对于类似的效果,您可以将声明移动到类范围。 (它可以从课堂上的所有方法访问,但不仅仅是你想要的方法。)
class Defaultclass
{
static int x = 5;
static void Main(string[] args)
{
}
}