Как я могу вызвать класс, который расширяет интерфейс?
У меня есть класс интерфейса:
public interface IStatFunction : IComparable<IStatFunction> { }
а нормальный класс расширяет интерфейс IStatFunction:
public class StatFunction : IStatFunction { }
Теперь мой код будет использовать как вышеописанный класс, так и интерфейс:
public void addEffect(IStatOwner statOwner, List<IStatFunction> functions) { }
другой код вызывает эту функцию addEffect:
List<StatFunction> allModifiers = null; cgs.addEffect(item, allModifiers);
Теперь я получаю ошибку: не удается преобразовать List & lt;statfunction> В List & lt;istatfunction>
так как же я могу исправить эту ошибку?
Что я уже пробовал:
Я пытаюсь использовать ConvertAll, его можно удалить ошибку, но я не знаю, работает он или нет:
cgs.addEffect(item, allModifiers.ConvertAll(o => (IStatFunction)o));