首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从泛型基继承泛型约束

从泛型基继承泛型约束
EN

Stack Overflow用户
提问于 2020-02-10 13:06:00
回答 1查看 91关注 0票数 1

对不起标题不清楚,我希望有人能澄清。

我希望创建一个泛型接口,其中需要让泛型类型T从基类继承,但是基类也是泛型类型:Base<U>。是否有一种方法可以指定T需要从Base继承而不需要指定U

示例:

代码语言:javascript
复制
public interface ICommentRepository<T> : IBaseRepository<T>
    where T : Comment<U>, new()

我不关心U所以我不想要ICommentRepository<T, U>。这也会使实现变得尴尬:

代码语言:javascript
复制
public class ArticleCommentRepository : ICommentRepository<Comment<Article>, Article> { .. }

必须提供两次Article

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-12 11:35:49

这取决于你为什么需要U?如果您不需要它作为约束,您可以很容易地创建非泛型基,并将其用作约束。

代码语言:javascript
复制
public class Base
{

}

public class Base<T> : Base
{

}

public interface ICommentRepository<T> : IBaseRepository<T>
    where T : Base, new()
{

}

如果泛型约束并不重要,但仍然需要使用泛型基约束,甚至可以这样做。

代码语言:javascript
复制
public interface ICommentRepository<T> : IBaseRepository<T>
        where T : Base<object>, new()
{

}

如果您能够发布更多关于Base<T>的详细信息以及为什么它是通用的,它可以帮助我们解决您的问题。

干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60151090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档