此刻,我有一堂课:
ApiResponse<T> where T : IApiModel
如下所示:
ApiResponse<Contacts>
我想修改类型约束以使其看起来像这样:
ApiResponse<T1<T2>> where T1 : IApiModelCollection<T2> where T2 : IApiModel
然后这样称呼:
ApiResponse<Contacts<ContactDetails>>
我该如何实现?除非我指定每个用,
分隔的类型参数,否则以上示例将不起作用,例如:
ApiResponse<T1, T2>
将这样称呼:
ApiResponse<Contacts, ContactDetails>
我想做些什么吗?还是有更好的方法?
这是一个示例类:
public class Contacts : IApiModelCollection<ContactDetails>
{
// properties relevant to an api model collection
}
public class ContactDetails : IApiModel
{
// etc...
}
界面如下:
IApiModelCollection<T> where T : IApiModel
任何建议都值得赞赏
答案 0 :(得分:0)
您已经在接口中为IApiModelCollection定义了T,所以这样做不应该足够吗?
ApiResponse<T> where T : IApiModelCollection<IApiModel>
我发现的另一种尝试会有点难看:
ApiResponse<T1,T2> where T1 : IApiModelCollection<T2> where T2 IApiModel
然后您会打一个电话:
ApiResponse<Contacts<ContactDetails>, ContactDetails>
希望这会有所帮助。