Я писал эту строку:
var factory = new Dictionary<Types, Func<IProblemFactory<IProblem>>>();
factory.Add(Types.Arithmetic, ()=> new ArithmeticProblemFactory()));
public interface IProblem { ... }
public interface IProblemFactory<T> where T : IProblem
{
// Some stuff
}
public class Arithmetic<TResult> : IProblem
{ }
public class ArithmeticProblemFactory : IProblemFactory<Arithmetic<decimal>>
{ }
И это говорит мне об этой ошибке:
Ошибка 1 Не удается неявно преобразовать тип «Exam.ArithmeticProblemFactory» в «Exam.IProblemFactory». Существует явное преобразование (вам не хватает приведения?)
Ошибка 2 Не удалось преобразовать лямбда-выражение в тип делегата 'System.Func>', поскольку некоторые типы возвращаемых данных в блоке неявно не преобразуются в тип возврата делегата
Что я делаю не с теми людьми?