0

Class1 声明一个变量并实例化它。定义和实例化语句允许是类范围。

class class1
{
public bool variable = false;
}

使用相同的逻辑为什么 Class2 不能实例化变量。为什么不允许实例化语句在这样的类范围内。

class class2 : class1
{
variable = false;
}

我很感兴趣,如果这背后有任何合乎逻辑的解释。可能是编译器以某种特殊的方式解释了这样的定义。

4

2 回答 2

1

除了内联初始化之外,类主体中不允许使用不包含在构造函数、方法或属性等内容中的语句。

如果要将变量初始化为其他内容,请将其粘贴在构造函数中(这是构造函数的用途):

public class Class2 : Class1
{
    public Class2()
    {
        variable = false;
    }
}

另一个类似的问题:

仅在方法中声明,但声明呢?

总之,声明只允许在类范围内。内联初始化等同于在构造函数中初始化成员变量——我猜这是作为语法糖添加的,因为内联初始化对于许多语言来说都是存货交易。

还有一个关于命名的快速说明,类通常是标题大小写的。

于 2012-05-10T08:09:10.830 回答
0

从来没有看到你的第二种情况有问题,除了在第二种情况下你没有定义变量的类型。

编辑

我想我误解了你的问题:

该成员variable是基类定义的一部分。您不能通过任何方法访问类的公共 成员。这就对了。

于 2012-05-10T08:08:54.357 回答