我想我很惊讶地发现Implements
或<Serializable()>
没有从一个类继承到类,这意味着每次我想重新创建这些行为时都必须重新定义它。我想知道在.Net中还有哪些不可篡改?感谢
答案 0 :(得分:5)
这些是两个不同的项目:接口和属性继承。
Inherits
部分指的是接口在类层次结构中的行为方式。接口确实是继承的。如果给定的基类实现IFactory
,那么它的所有派生类型都会。关于派生类如何重新实现接口或特定方法,存在某些语言上的奇怪之处。但是,在.Net级别,一旦基类实现了一个接口,所有派生类也将如此。
是否继承属性取决于给定属性AttributeUsage.Inherited
上AttributeUsage
的值。在Serializable
的情况下,它被标记为Inherits=false
并且不会被继承。每个属性都必须在这里选择自己的行为。
答案 1 :(得分:1)
长答案需要很长时间,但简短的回答是任何使用sealed
(c#)或NotInheritable
(VB.NET)修饰符的类。
http://msdn.microsoft.com/en-us/library/88c54tsw%28v=vs.71%29.aspx