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