У меня есть несколько классов, реализующих интерфейс ITerminalCommand:
public class TerminalCommandHelp : MonoBehaviour, ITerminalCommand { //... }
public class TerminalCommandExit : MonoBehaviour, ITerminalCommand { //... }
В отдельном классе я хотел бы иметь возможность искать строку в словаре и создавать новый экземпляр ITerminalCommand , но я не знаю, как бы go это сделать, поэтому ниже я написал какой-то псевдокод в надежде, что кто-то поймет, что я пытаюсь сделать.
Dictionary<string, ITerminalCommand> validInputs = new Dictionary<string, ITerminalCommand>()
{
{
"help",
//Some reference to the TerminalCommandHelp class so I can instantiate it at my own will
},
{
"exit",
//Some reference to the TerminalCommandExit class so I can instantiate it at my own will
}
};
//Create a new object based on the key I am looking up, and supply some arguments to the constructor
ITerminalCommand genericTerminalCommand = new validInputs["help"](arguments);
//Run a method on the newly instantiated object
genericTerminalCommand.Execute();
Как я могу «абстрактно» ссылаться на тип класса в словаре, чтобы я мог создать его экземпляр, а также предоставить ему некоторые аргументы?