繁体   English   中英

C#为什么不能改变类作用域中的变量值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM