gpt4 book ai didi

c# - 具有子泛型类型的泛型工厂方法

转载 作者:行者123 更新时间:2023-11-30 14:06:35 28 4
gpt4 key购买 nike

我有一个 InterfaceExecuter 类型,它定义了一个 Enter 和一个 Exit 类型,两者都是结构。在另一个类中,我想创建一个方法来实例化实现我的接口(interface)的类,如下所示:

 public T<TEntry, TExit> Initiate<T<TEntry, TExit>>()
where T: InterfaceExecuter<TEntry, TExit>, new()
where TEntry:struct
where TExit:struct
{
return new T<TEntry, TExit>();
}

我该怎么做?

最佳答案

你快完成了,只需定义返回类型 (T)作为通用参数。

有了这个约束T: InterfaceExecuter<TEntry, TExit>您已经定义了通用类型的结构 T因此在实例化它时不需要显式使用泛型参数(编译器也不允许)

public T Initiate<T, TEntry, TExit>()
where T: InterfaceExecuter<TEntry, TExit>, new()
where TEntry:struct
where TExit:struct
{
return new T();
}

关于c# - 具有子泛型类型的泛型工厂方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46908994/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com