У меня есть два класса и интерфейс, как
interface IVehicle
{
void Drive();
}
class Benz :IVehicle
{
public void Drive()
{
Console.WriteLine("WOW! driving benz");
}
}
class Ferrari : IVehicle
{
public void Drive()
{
Console.WriteLine("WOW! driving ferrari");
}
}
У меня есть класс Driver, который использует это.
class Driver
{
public void StartDriving(IVehicle vehicle)
{
vehicle.Drive();
}
}
Существует еще один универсальный драйвер.
class GenericDriver
{
public void StartDriving<T>() where T : IVehicle , new()
{
T vehicle = new T();
vehicle.Drive();
}
}
Вопросы
- Видите ли вы какие-либо преимущества для общей реализации по сравнению с обычным драйвером? Если да, то каковы они?
- Какой из них вы предпочитаете? Общий или нормальный?
- Есть ли лучший способ реализовать универсальный драйвер?
- Мне кажется, что дженерики в C # очень ограничены по сравнению с шаблонами C ++. Это правда?
Есть мысли?