【发布时间】:2012-07-09 16:14:26
【问题描述】:
如何强制子类实现其超类的某些属性?原因是我想使用 Attributes 获取有关该类的一般信息,例如“DisplayName”、“Description”或“Capabilities”。
所以我想我可以在超类中实现它们并强制子类实现属性。
有没有类似abstract 属性的东西,比如方法?
[abstract DeclareMe]
public abstract class InheritMe {
public abstract void DeclareMe();
}
【问题讨论】:
-
该问题的答案解释了如何将已经声明的属性继承给子类,这不是这里的问题。
-
如果你已经在抽象类中标记了所有子类中的字段和方法,默认情况下你不需要强制任何东西
-
但我说的是属性,而不是字段或方法。
-
@Anand 链接的问题的答案是相关的。您不能在编译时强制使用属性,因此不存在
abstract属性之类的东西。通过使用基类上的属性,您确实获得了一种虚拟性,但这不是您所要求的。
标签: c# inheritance abstract-class custom-attributes