我有一个WrapperBase<PocoBase>
类来包装POCO对象并提供其他功能:
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
”?
答案 0 :(得分:2)
我怎么能说“我不关心T是什么,因为我想要的所有功能都在WrapperBase中”?
您可以定义一个接口IWrapperFunctionality
,指定提供该功能的方法。让WrapperBase<T>
实现该接口,并将其用作构造函数参数。
public ThingDoer(IWrapperFunctionality wrapper)
{
}