我正在尝试做一些简单的事情:使用泛型创建一个实例。我收到一条错误消息,因为我没有new
约束,所以无法创建实例。但是,我的退货单上确实有它!有什么想法吗?
public IAction CreateAction<TA, TP>(ActionParamBase param)
where TA : IAction
where TP : ActionParamBase
{
Ensure.That(param).Is<TP>();
return new TA { Param = param as TP };
}
这意味着new
在您的TA部分的约束中。请参阅此SO帖子以供参考,然后请参见下面的代码:将参数传递给模板类型的C#通用new()
public IAction CreateAction<TA, TP>(ActionParamBase param)
where TA : IAction, new()
where TP : ActionParamBase
{
Ensure.That(param).Is<TP>();
return new TA { Param = param as TP };
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句