C#为什么不能在类范围内更改变量值?

时间:2018-12-31 08:39:08

标签: c#

我对C#为什么在定义变量后不能在类范围内更改变量值感到困惑。

考虑代码(无法使用):

class Foo
{
   private int x;
   x = 0;
}

很明显,您可以做类似的事情

class Foo
{
   private int x = 0;
}

或这个

class Foo
{
    private int x;
    public void Bar()
    {
        x = 5;
    }
}

但是我不明白为什么只要变量在同一范围内就可以修改它,为什么第一种方法不起作用?

2 个答案:

答案 0 :(得分:0)

x=0;只能是方法的一部分。如果使用private int x = 0;,编译器实际上会将其拆分,然后将赋值放入构造函数中,这样您就可以编译

class Foo
{
    private int x;
    public Foo()
    {
        x = 0;
    }
}

答案 1 :(得分:0)

因为这个区域

Foo类{...在这里...}

为声明类而设计。因此,它使用默认的初始化和功能来限制成员。您想放置功能代码,这是不允许的。

如果需要添加构造代码,请使用构造函数。