问答 突然想到个问题,泛型类是否可以继承 T?

SinDynasty · 2017年10月30日 · 最后由 心向东 回复于 2017年10月31日 · 2463 次阅读

泛型类是否可以继承 T?备注:我知道目前是不行的,编译报错

public abstract class ParentClass
{

}

public class Class<T> : T where T : ParentClass
{

}

假如我们在约束这个 T 的时候,就限定这个 T 是一个完全时间了 ParentClass 的非封闭类,那这是否可行?

共收到 7 条回复 时间 点赞

类里的泛型不能继承,但是实例化对象的时候可以通过通配符来限定对象的泛型,这个之前看到过,但也不是太了解,给个链接http://blog.csdn.net/gjb724332682/article/details/52838494

昨天有雨 回复

我知道这样是不行的,因为你无法约束 T 是一个非封闭类,所以我在上面说的是假如,假如我们把这个 T 通过一个关键字,把 T 限定成是一个已经完全实现父类的非封闭类,那是不是就可以了

直接把 t 换成 parentclass 不就好了😅

心向东 回复

哎,我要继承的是子类啊,不是父类啊

这是 c#吧,注明下呀

问题的核心是,我们是否可以通过泛型约束,将 T 约束成一个可以被继承的 T(备注:目前的.Net 的编译器貌似不行)

SinDynasty 回复

那你把子类放上去不就好了? 既然定了类型 就不要用范性啊。。。 傻吗不是
范型的目的不就是 在类型不定的时候用的吗。
c# 的语法糖虽然多 但是不用又不会死啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册