簡體   English   中英

實現泛型類和多個接口

[英]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 {}

IDeletableSessionTreeManager擴展/實現了DataManagerIDeletableIAnotherInterface ,而泛型則限於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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM