我有一個通用的接口(MyInterface<T>
),這是由類ChildA
在下面的例子中實現:強制通用接口童車型
public interface MyInterface<T>
{
MyObj<T> GetObj(); // Irrelevant
}
class ChildA : MyInterface<ChildA>
{
// Irrelevant:
MyObj<ChildA> GetObj() {
return new MyObj<ChildA>();
}
}
這工作,但我需要確保<T>
總是有類型的實現類,所以在這種情況下,T
應始終爲ChildA
類型,因爲它是由ChildA
實現的。
另一個正確實現可能是這樣,例如:
class ChildB : MyInterface<ChildB> { ... }
但目前,這不正確實現也是可行的,但它不應該是:
class ChildA : MyInterface<ChildB> { ... }
有沒有辦法強制執行?
我不確定你要在這裏做什麼。有可能強制自己的類型,但幾乎沒有收益。它背後的動機是什麼? –
你爲什麼要這樣? –
@MioBambino我正在使用它來實現數據傳輸對象。這一切都已經在工作,但正如我所提到的,仍然有可能將其設置爲另一種類型。這就是爲什麼我需要強制執行那些不可能發生的事情。 –