C#为什么可以';您不能更改类范围中的变量值吗?
我不明白为什么C#在定义类作用域后不允许更改它的变量值 考虑代码(这不起作用): 很明显,你可以像这样做C#为什么可以';您不能更改类范围中的变量值吗?,c#,C#,我不明白为什么C#在定义类作用域后不允许更改它的变量值 考虑代码(这不起作用): 很明显,你可以像这样做 class Foo { private int x = 0; } 还是这个 class Foo { private int x; public void Bar() { x = 5; } } 但我不明白为什么第一种方法不能像我想的那样工作,只要变量在同一范围内,您就可以修改它?代码>x=0只能是方法的一部分。如果private int
class Foo
{
private int x = 0;
}
还是这个
class Foo
{
private int x;
public void Bar()
{
x = 5;
}
}
但我不明白为什么第一种方法不能像我想的那样工作,只要变量在同一范围内,您就可以修改它?代码>x=0代码>只能是方法的一部分。如果
private int x=0“代码>编译器”实际上会将其拆分,并将赋值放入构造函数中,这样您就可以编译
class Foo
{
private int x;
public Foo()
{
x = 0;
}
}
因为这个地区
类Foo{…这里…}
为类的声明而设计。因此,它包含成员及其默认初始化和函数。你想把函数代码放进去,这是不允许的
如果你需要构建代码,请使用构造函数。大多数语言中的oop架构,如果不是allAn Assignment语句,比如x=0
只能在一个方法中。问问自己:如果您直接在类中编写代码(而不是在构造函数/方法/属性等中编写),您希望在什么时候执行该代码?这个问题的答案应该告诉你应该把代码放在哪里。
class Foo
{
private int x;
public Foo()
{
x = 0;
}
}