Практическое преимущество дженериков перед интерфейсами

Каким было бы практическое преимущество использования дженериков по сравнению с интерфейсами в данном случае:

void MyMethod(IFoo f) 
{
}

void MyMethod<T>(T f) : where T : IFoo
{
}

Т.е. что можно сделать в MyMethod, чего нельзя было сделать в негенерной версии? Я ищу практический пример, я знаю, в чем теоретические различия.

Я знаю, что в MyMethod, T будет конкретным типом, но, тем не менее, я смогу использовать его только как IFoo в теле метода. Так в чём же реальное преимущество?

42
задан user247702 12 October 2015 в 09:50
поделиться