当前位置:  开发笔记 > 编程语言 > 正文

派生类的通用约束

如何解决《派生类的通用约束》经验,为你挑选了1个好方法。

我有A班:

public class ClassA

B类来自A:

public class ClassB : ClassA

C类来自B类:

public class ClassC : ClassB

现在我有一个带约束的泛型方法

public static T Method() where T : ClassA

好的,现在我想打电话:

ClassC c = Method();

但我得到编译错误说: Type argument 'ClassC' does not inherit from or implement the constraint type 'ClassA.

然而,编译器将允许:

ClassB b = Method();

我的理解是,这失败了,因为ClassC继承ClassA而不是ClassA

我真正的问题是,是否有可能创建一个派生类ClassB,可以通过某种方式使用泛型方法?

这可能看起来仿制药过度使用,我同意.我正在尝试创建从单独项目中的亚音速数据对象派生的业务层对象.

注意:我已经为添加了额外的空格,否则它们会从问题中删除.



1> Jon Skeet..:

好吧,您可以将Method更改为:

public static T Method() where T : ClassA where U : T

这些帮助有用?如果你不能改变方法当然没用多少......

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有