为什么密封关键字不包含在访问修饰符列表中?

Ash*_*ain 2 c# language-design access-modifiers sealed

我认为sealed应该包含在C#语言的访问修饰符列表中.有人可以说出它被排除在外的原因吗?

Pad*_*ddy 10

它不是一个访问修饰符,它与是否可以继承一个类有关...

  • 喜欢`abstract` (4认同)

Ham*_*ari 6

如果你不能从一个类派生它并不意味着你无法访问它.


Abe*_*bel 6

一个访问修饰符定义可以访问该方法或类,以及(即:private:只有类成员,public:其他人等).将方法或类标记为sealed无法继承的方法.它没有说明访问本身.

正确地说:如果使用sealed关键字,除非默认访问修饰符适合您,否则仍需要添加访问修饰符.

您的困惑可能与两个关键字似乎都与保护级别有关.这是真的,但我们没有保护修饰符的概念.所述sealed关键字被称为密封改性剂,因为它修改一个类或方法将被密封关闭.这就像一个布尔开关:一个类或方法要么是密封的,要么是密封的,不管它的访问修饰符如何.

到增加混乱,存在密封存取,这意味着一个访问器(gettor/settor)的该推导是不允许的(C#标准10.7.5).