如何指定BaseType<;有>;吗
本文关键字:gt lt 何指定 BaseType | 更新日期: 2023-09-27 18:01:04
我有一个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
中"?
我怎么能说"我不在乎t是什么,因为我想要的所有功能都在WrapperBase中"?
您可以定义一个接口IWrapperFunctionality
,该接口指定提供该功能的方法。让WrapperBase<T>
实现该接口,并将其用作构造函数参数。
public ThingDoer(IWrapperFunctionality wrapper)
{
}