爲什麼不使用類似的東西(例如):
public class Base
{
public virtual Base Parent { get {return ...}}
public virtual BaseConnection Connection { get {return ... ;}}
}
public class Special : Base
{
public override Base Parent { get {return MySpecialParent;}}
public override BaseConnection Connection { get {return new SpecialConnection();}}
}
,甚至類似的東西(如果有BaseConnection和SpecialConnection之間無親屬關係):
public class Base
{
public virtual dynamic Parent { get {return ...}}
public virtual dynamic Connection { get {return ... ;}}
}
public class Special : Base
{
public override dynamic Parent { get {return MySpecialParent;}}
public override dynamic Connection { get {return new SpecialConnection();}}
}
但是,也許你應該對你的類分離給予另一種想法,也許你應該從它的創建者或者使用者注入到基類的特定關係某種類型的容器,而不是接口。只是一個想法... :)
我不知道我完全理解你的要求,但你可以考慮製作'BaseClass'通用 - 這將意味着你不必強制調用者明確施放。 – CodingIntrigue
@Rraham,好主意 - 希望父母總是和派生類一樣。 –
@Rraham,我已經更新了這個例子。家長不是唯一的財產,我不喜歡這個想法有一個所有這些屬性的通用參數。另外,如果我在這裏使用泛型,我也使用BaseClass,這將比BaseClass。 –
Yggdrasil