void RegisterCommand <CommandType>() where CommandType : Command { CommandType command = (CommandType)Activator.CreateInstance(typeof(CommandType), new object[] { this }); commands.Add(command.GetName(), command); }