Если я напишу метод, принимающий параметр, который происходит из BaseClass
(или интерфейса), насколько я знаю, есть два способа добиться этого:
void MyMethod<T>(T obj) where T : BaseClass { ... }
а также
void MyMethod(BaseClass obj) { ... }
Какие преимущества/недостатки используют один над другим?