Class1 声明一个变量并实例化它。定义和实例化语句允许在类范围内。
class class1
{
public bool variable = false;
}
同样的逻辑为什么Class2不能实例化变量。为什么实例化语句不允许出现在这样的类范围内。
class class2 : class1
{
variable = false;
}
我很感兴趣,如果这背后有任何逻辑解释。可能编译器以某种特殊的方式解释这样的定义。
除了内联初始化之外,类主体中不允许使用未包含在构造函数、方法或属性等内容中的语句。
如果您想将变量初始化为其他内容,请将其粘贴到构造函数中(这就是构造函数的用途):
public class Class2 : Class1
{
public Class2()
{
variable = false;
}
}
另一个类似的问题:
总之,声明只允许在类范围内进行。内联初始化相当于初始化构造函数中的成员变量 - 我的猜测是这是作为语法糖添加的,因为内联初始化对于许多语言来说都是股票和交易。
还有一个关于命名的快速说明,类通常是标题大小写。
从来没有看到你的第二种情况有问题,除了在第二情况下你没有定义变量的类型。
编辑
我想我误解了你的问题:
成员
variable
是基类定义的一部分。您无法通过任何方法访问类的“public”成员。就是这样。