Каким было бы практическое преимущество использования дженериков по сравнению с интерфейсами в данном случае:
void MyMethod(IFoo f)
{
}
void MyMethod<T>(T f) : where T : IFoo
{
}
Т.е. что можно сделать в MyMethod
, чего нельзя было сделать в негенерной версии? Я ищу практический пример, я знаю, в чем теоретические различия.
Я знаю, что в MyMethod
, T будет конкретным типом, но, тем не менее, я смогу использовать его только как IFoo в теле метода. Так в чём же реальное преимущество?