我有一个使用Enter和Exit类型定义的InterfaceExecuter类型,两者都是struct。 在另一个类中,我想创建一个实例化实现我的接口的类的方法,如下所示:
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>();
}
我该怎么做?
答案 0 :(得分:7)
你几乎就在那里,只需将返回类型(T)
定义为通用参数。
使用此约束T: InterfaceExecuter<TEntry, TExit>
,您已经定义了泛型类型T
的结构,因此在实例化时不需要显式使用泛型参数(编译器赢了&#39) ; t也允许)
public T Initiate<T, TEntry, TExit>()
where T: InterfaceExecuter<TEntry, TExit>, new()
where TEntry:struct
where TExit:struct
{
return new T();
}