-1
我有一個WrapperBase<PocoBase>
類,它包裝POCO對象並提供額外的功能:如何指定BaseType <any>?
public class WrapperBase<T>
where T : PocoBase
和幾個實現在該基類的頂部。
public class ButtonWrapper : WrapperBase<Button>
public class ZipperWrapper : WrapperBase<Zipper>
我試圖寫一個類,需要一個WrapperBase<T>
作爲構造函數的參數。
public class ThingDoer
where T : PocoBase
{
public ThingDoer(WrapperBase<T> wrapper)
{
}
}
但無論我怎麼努力,該ThingDoer
希望爲T
一個定義:
new ThingDoer<Zipper>(zipperWrapper);
// I don't care what T is... get rid of <Zipper>
我怎麼能說「我不在乎什麼T
是,因爲所有我想要的功能在WrapperBase
「?
在使用泛型時,你必須想象'<' and '>'只是名稱的一部分。想象一下,你有兩個類定義爲「公共類ButtonWrapper:WrapperBase_Button」和「公共類ZipperWrapper:WrapperBase_Zipper」,再次考慮你的問題,你不能只做'WrapperBase',因爲你沒有類名爲'WrapperBase',您有兩個名爲'WrapperBase_Button'和'WrapperBase_Zipper'的類,除了共享名稱中相同的前12個字母外,它們完全沒有任何關係。 –