如何使用泛型创建实例?

用户1400995

我正在尝试做一些简单的事情:使用泛型创建一个实例。我收到一条错误消息,因为我没有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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章