我有一個通用的類型參數的接口:聲明繼承泛型複雜類型約束
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