Вызов Main () из другого класса - PullRequest
3 голосов
/ 17 июля 2011

У меня есть класс с именем TestMaze. У меня есть другой класс с именем DisplayHome, который имеет метод с именем gameOver():

public void gameOver()
    {
        Console.Write("GAME OVER!");
        Console.Write("Play Again? Y/N");
        if(char.ToLower(Convert.ToChar(Console.Read())=='y')
            //Main()
        else
            Environment.Exit(1);
    }

Как я могу вызвать метод Main?
PS. они имеют одинаковое пространство имен. Мне просто нужно знать, как я могу снова вызвать метод Main.

Ответы [ 4 ]

4 голосов
/ 17 июля 2011

Рефакторинг вашего кода.Переместите все, что нужно, в другую функцию и вызовите ее как из main, так и из gameOver.

4 голосов
/ 17 июля 2011

У вас должен быть метод Play () внутри вашего Main ... и GameOver () должен вызывать Play (), если пользователь вводит 'y'.

2 голосов
/ 17 июля 2011

Предполагая, что Main - это метод статического класса (который я себе представляю), вы можете просто использовать MyClass.Main(/*relevant args*/) - будьте осторожны, конечно, это будет свежая реализация, она не будет делиться нестатической переменные данные.

Однако, возможно, лучшим решением будет поместить весь ваш код в отдельный класс, который вызывается / создается из Main() - ваша программа может затем передать логическое значение обратно фактическому исполняемому файлу Main, который будет использоваться для принятия решения о том, не выходить или зацикливаться.

0 голосов
/ 15 января 2018

Если ваш метод Main находится в классе TestMaze, просто выполните:TestMaze.Main (" предоставить аргументы ")Например,

string[] args=new string[]{"New Game","1"}
TestMaze.Main(args)

Обычно Main находится в классе Program, поэтому:

Program.Main(args)
...