[英]Implementing generic class and multiple interfaces
我有以下類定義:
public class SessionTreeManager<T>
: DataManager<T> where T : DataItem, IDeletable, IAnotherInterface
我只希望T成為DataItem並實現其他兩個接口。 編譯器似乎認為我希望T是3中的任意一個,並給出構建錯誤,因為我在上述類中的T並未實現所有3,並且此類無法找到要覆蓋的方法。
這可能嗎?
如果我正確理解了您的問題,則必須執行以下操作:
public class SessionTreeManager<T>
: DataManager<T>, IDeletable, IAnotherInterface
where T : DataItem {}
IDeletable
, SessionTreeManager
擴展/實現了DataManager
, IDeletable
和IAnotherInterface
,而泛型則限於DataItem
。
您還可以將擴展設置為DataManager<DataItem>
如其他注釋中所述,但是父方法將不會被約束為class T
,而是會被約束為其父類DataItem
。 這樣, SessionTreeManager
所有方法及其父類DataManager
都將被限制在DataItem
的子class T
嘗試這個
public class SessionTreeManager<T> : DataManager<DataItem>, IDeletable, IAnotherInterface
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.