1
在我的解决方案中,有许多类C1
,C2
,C3
等等,所有类都继承来自共同的抽象基类CB
。如何强制类实现从特定基类/接口(而不是特定类型)派生的属性
也有许多类D1
,D2
,D3
等,其充当数据源用于相应C
类(例如,数据源C1
是D1
类型等的局部属性)。 D
类全部继承自共同的抽象基类DB
,但其实现方式各不相同(C
类使用了继承和非继承属性&方法)。
现在,我想强加的规则,所有C
类(即从CB
派生)必须实现“数据源”属性,此属性必须从DB
派生的类型。
我最初的想法是这样:
public abstract class CB
{
protected abstract DB DataSource { get; set; }
etc.
}
然而,这意味着在C
类中重写DataSource
属性只能是DB
类型,而不是从DB
派生的类型。
我该如何施加我的规则?理想情况下,CB
和DB
将保持抽象基类(因为我希望C
和D
类继承每个类都有非抽象属性和方法),但是如果需要它们可以转换为接口。但是,如果我这样做,我想我也有同样的问题。
我明白第一代码片段,但对于第二个你不是说: C1应该定义为: public class C1:CB {protected override D1 DataSource {get;组; }} –
Laurence
2014-09-29 12:01:28