有没有办法强制子类至少有一个具有指定属性的字段?

时间:2015-06-08 14:03:35

标签: c# oop

假设我们创建了一个名为[Mandatory]的属性。那些存在任何方式强制子类至少在具有此属性的字段上,而父类没有任何字段? 例如,假设:

class parent{
    public abstract void doSomething(){};
}

我应该向父类添加什么,所以子类必须是这样的:

class parent{
    [Mandatory] public field1;
    public override void doSomething(){ // do something ...};
}

如果它不包含field1则无法编译。在c#中存在这样的东西吗?

更新

父类只是应用一个已经员工尊重的规则,但我想保证每个人都必须至少在现场声明。我认为这不是面向对象应用程序的情况。但我试图强迫他们使用oop遵守这个惯例!如果不是正确的方法,请通知我。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您是否特别想要抽象字段或属性是否足够?

以下情况如何?

abstract class Base
{
    public abstract int Field { get; set; }
}

class Derived : Base
{
    public override int Field { get; set; }
}