Ваш метод DoOtherStuff<T>
имеет ограничение where T : new()
.(То есть «T
должен быть неабстрактным типом с открытым конструктором без параметров».)
Ваш DoStuff<T>
метод не имеет такого ограничения, что означает, что компилятор не может гарантироватьчто все аргументы типа T
, которые могут по закону использоваться для DoStuff
, будут соответствовать ограничению where T : new()
, требуемому DoOtherStuff
.