香港专业教育学院碰到一个问题的类型aguments接口 - 这是我的阶级结构如何初始化的类型是另一个接口
public interface IModel{}
public interface IGenericMapper<T> where T : IModel {...}
public class ActualModel:IModel {...}
public class ActualMapper: IGenericMapper<ActualModel> {...}
我实际的代码来initialse映射器是:
IGenericMapper<IModel> mapper;
mapper= new ActualMapper();
它不编译。我得到的错误
无法隐式转换类型“ActualMapper”到“IGenericMapper”。 的显式转换存在(是否缺少强制转换?)
当我使用
mapper= new ActualMapper() as IGenericMapper<IModel>;
映射器没有得到正确初始化投(它回来为NULL)
我错过了什么 - 因为ActualMapper()
implements IGeneric
映射器和它的类型impliments`IModel'为什么不能初始化映射器。
有没有另外一种方法来构造这个以达到我所需要的?
谢谢你这么多
注人提出的解决方案给了我其他的编译错误映射接口具有以下成员
T GetModel(busO bBusinessObject);
busO SetBusObject(T source, busO target);
显然你不能有泛型类型作为输入参数时其在 “走出去”
你可以添加ILFFMapper <>的定义吗? – LunicLynx
'var ILFFMapper'这是一个语法错误,删除'var'关键字 –
Tommi
您需要一个协变类型。尝试IGenericMapper < out T> –