Bic*_*ick 2 c# generics visual-studio-2012
我有一个名为CAR的Object声明如下:
public class Car{
public int NumberOfWheels;
}
Run Code Online (Sandbox Code Playgroud)
并使用另一个类我可以检索其三个子类.
如下:
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}
}
Run Code Online (Sandbox Code Playgroud)
如何使用泛型编写?
(我知道这太简单了,我需要一个更复杂案例的例子)
我想创建一个创建新(T)的方法,输入参数并返回它.
就像是
public TruckC getCarC(int param){
return getTruck<TruckC>(param)
}
Run Code Online (Sandbox Code Playgroud)
只有这样:
1.TruckA/B/C没有构造函数.
汽车没有建设者.使用{}初始化.
3.该方法应仅接收从Car派生的类,以便它可以使用其初始化({}).
(等同于??扩展?在java泛型中)
可能吗?
谢谢.
private static T GetTruck<T>(int param) where T : Car, new()
{
return new T() {NumberOfWheels = param} ;
}
Run Code Online (Sandbox Code Playgroud)