我对C#为什么在定义变量后不能在类范围内更改变量值感到困惑。
考虑代码(无法使用):
class Foo
{
private int x;
x = 0;
}
很明显,您可以做类似的事情
class Foo
{
private int x = 0;
}
或这个
class Foo
{
private int x;
public void Bar()
{
x = 5;
}
}
但是我不明白为什么只要变量在同一范围内就可以修改它,为什么第一种方法不起作用?
答案 0 :(得分:0)
x=0;
只能是方法的一部分。如果使用private int x = 0;
,编译器实际上会将其拆分,然后将赋值放入构造函数中,这样您就可以编译
class Foo
{
private int x;
public Foo()
{
x = 0;
}
}
答案 1 :(得分:0)
因为这个区域
Foo类{...在这里...}
为声明类而设计。因此,它使用默认的初始化和功能来限制成员。您想放置功能代码,这是不允许的。
如果需要添加构造代码,请使用构造函数。