![]() |
1
2
您需要将返回值向上转换为
例如:
这两个强制转换是必需的,因为编译器不知道这一点
|
![]() |
2
2
编译器无法提前知道CreateDistribution的返回类型是否与类型t匹配,而不管您的if语句如何。把线路改成这个行行吗?
显然第二个也是一样。 |
![]() |
3
1
泛型方法是在编译时解析的,因此编译器需要预先知道它将使用什么类型T编译函数。看起来您希望基于运行时检查执行返回,在这种情况下,您需要的不是泛型方法,而是返回所有可能的返回都从中继承的对象。您可以使用的最基本的方法是object,但显然,无论从何处调用它,都必须进行一些类型检查。 |
![]() |
4
0
|
![]() |
5
0
以下是一种更通用的方法来完成您要做的事情:
|
![]() |
Glory Raj · 有什么方法可以使这两个块具有共同的功能吗 2 年前 |
![]() |
milczi · Swift通用无强制展开向下投射 6 年前 |
![]() |
bugs · Typescript-泛型类型扩展自身 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Blankdud · 具有默认数据的通用对象创建方法 6 年前 |
![]() |
Tim Hutchison · 从泛型对象列表中读取泛型值 6 年前 |