我有一个通用的类型参数的接口:声明继承泛型复杂类型约束
public interface IDriveable<T> where T : ITransmission { ... }
我也有具有需要是接口类型的类型参数的类:
public class VehicleFactory<T> where T : /* ??? */
这个声明有一个问题。我不能放置“IDriveable”,因为它没有类型参数,并且与IDriveable的类型签名不匹配。但我也不想把IDriveable <U>或者,因为然后VehicleFactory必须知道什么种类 IDriveable它越来越。我希望VehicleFactory能够接受任何类型的IDriveable。
提出的解决方案同事必须是使用:
但我不喜欢这样,因为它是多余的。我不得不说“U”型两次:
var factory = new VehicleFactory<IDriveable<AllWheelDrive>, AllWheelDrive>();
问号应该怎么走?
为什么必须IDriveable是一个参数?你不能在课堂内使用IDriveable ,只能得到AllWheelDrive参数吗? –
configurator
2009-02-23 08:57:16