我试图调用一个泛型函数,它实现了一组属性接口。
代码如下:
public bool NeedsRenderAction<M, U>(M parent, U child)
where M : IVrsnProps
where U : IVrsnProps
{
return true;
}
我用以下方式称呼它。从剃须刀的角度来看。
bool x = NeedsRenderAction<LayoutVrsn, WidgetVrsn>(Model.SPV, widget);
呼叫甚至没有命中功能。 错误消息:没有从'layoutvrsn对象'到'IVrsnProps'的隐式引用转换
任何有关PLZ ...............
的工作答案 0 :(得分:2)
看起来你传递的参数Model.SPV
没有实现IVrsnProps
接口,你在函数上定义的泛型约束阻止你执行它。从您收到的错误消息来看,SPV
属性的类型为object
,这显然与IVrsnProps
接口无关。
为此,您应该删除此通用约束或使您的SPV属性具有正确的类型:
public IVrsnProps SPV { get; set; }
对于您的第二个参数,当然也是如此。您正在传递一些widget
变量,为此,此变量必须是实现IVrsnProps
接口的类型。