![](/img/trans.png)
[英]static class variable scope issue in C# winforms - why doesn't this bit of code work?
[英]C# Why can't you change the variable value in the class scope?
我很困惑为什么 C# 不允许您在定义类范围后更改变量值。
考虑代码(这行不通):
class Foo
{
private int x;
x = 0;
}
显然你可以做类似的事情
class Foo
{
private int x = 0;
}
或这个
class Foo
{
private int x;
public void Bar()
{
x = 5;
}
}
但我不明白为什么第一种方法不起作用,因为只要变量在同一范围内就可以修改它?
x=0;
只能是方法的一部分。 在private int x = 0;
情况下private int x = 0;
编译器实际上会将其拆分并将赋值放入构造函数中,因此您将编译版本
class Foo
{
private int x;
public Foo()
{
x = 0;
}
}
因为这个区
类 Foo{ ... 这里 ... }
专为类声明而设计。 所以它包含成员及其默认的初始化和函数。 你想放功能代码这是不允许的。
如果您需要放置构造代码,请使用构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.