Не могу представить, что это не обман, но я не могу найти ни одного ранее подходящего вопроса.
У меня есть общий метод
public T GetSetting<T>(Guid userId) where T : ISetting, new()
Это в свою очередь вызывает универсальный метод
public static ISetting CreateSetting<T>(IDictionary<string, object> data) where T:ISetting, new()
Сигнатуры T точно такие же, но компилятор требует, чтобы я приводил значение следующим образом:
return (T) BaseSetting.CreateSetting<T>(data);
Я что-то не так делаю, или это просто ограничение фреймворка?