Я хотел бы создать словарь, который использует строки в качестве ключей для создания экземпляров объектов. Вот начало моего словаря:
Dictionary<string, ITerminalCommand> validInputs = new Dictionary<string, ITerminalCommand>()
{
{"help", TerminalCommandHelp},
{"exit", TerminalCommandExit},
};
Эти классы команд терминала реализуют интерфейс ITerminalCommand как таковой:
public class TerminalCommandHelp : MonoBehaviour, ITerminalCommand
{
//contents of class correctly implementing interface
}
Проблема в том, что когда я объявляю и инициализирую свой словарь, я получаю сообщение об ошибке:
«TerminalCommandHelp» - это тип, который недопустим в данном контексте.
Я думал, что интерфейсы могут можно использовать абстрактно для представления любого класса, который реализует его? В конечном итоге, когда пользователь ищет ключ, я хочу создать экземпляр этого конкретного класса. Может кто-нибудь указать на мое недоразумение? Спасибо!