【发布时间】:2015-07-30 14:21:53
【问题描述】:
我正在尝试做一些简单的事情:使用泛型创建一个实例。我收到一条错误消息,提示我无法创建实例,因为我没有 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 };
}
【问题讨论】:
-
你需要这样做: where TA : class, new() Check: stackoverflow.com/questions/4737970/…
-
TA 是一个通用接口.. 你不能创建接口的实例
-
好的,谢谢你们的帮助!有效! => 其中 TA : IAction, new()