0

我正在尝试调用一个实现具有一组属性的接口的通用函数。

代码如下:

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 object”到“IVrsnProps”的隐式引用转换

任何工作请......

4

1 回答 1

2

看起来您传递的参数Model.SPV没有实现IVrsnProps接口,并且您在函数上定义的通用约束阻止您执行它。从您收到的错误消息来看,该SPV属性的类型显然与接口object无关。IVrsnProps

为此,您应该删除此通用约束或拥有正确类型的 SPV 属性:

public IVrsnProps SPV { get; set; }

当然,您的第二个参数也是如此。您正在传递一些widget变量,并且要使其正常工作,该变量也必须是实现IVrsnProps接口的类型。

于 2013-05-15T15:24:01.070 回答