我有一个名为 CAR 的对象,声明如下:
public class Car{
public int NumberOfWheels;
}
并且使用另一个类我可以检索它的三个子类。
如下:
public TruckA getCarA(int param){
return new TruckA () {NumberOfWheels = param}
}
public TruckB getCarB(int param){
return new TruckB () {NumberOfWheels = param}
}
public TruckC getCarC(int param){
return new TruckC () {NumberOfWheels = param}
}
如何使用泛型编写代码?
(我知道这太简单了,我需要一个更复杂的例子)
我想创建一个方法,创建一个新的(T),输入参数并返回它。
有点像
public TruckC getCarC(int param){
return getTruck<TruckC>(param)
}
只有那个:
1. TruckA/B/C没有构造函数。
2. Car没有构造函数。使用 {} 初始化。
3. 该方法应仅接收派生自 Car 的类,以便它可以使用其初始化 ({})。
(相当于 ?? extends ? 在 java generics 中)
可能的 ?
谢谢。
最佳答案
private static T GetTruck<T>(int param) where T : Car, new()
{
return new T() {NumberOfWheels = param} ;
}
关于C# 泛型方法 - 在类型上调用基类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671988/