how to call “ static void Main(string[] args) ”in the class again

后端 未结 5 430
渐次进展
渐次进展 2021-01-23 20:53

i am new in C# and working on Console Applications now a days i wrote the following code :

Program.cs

using System;
using System.Collect         


        
相关标签:
5条回答
  • 2021-01-23 21:05

    Try put the code that you will execute outside the main class in another method like

    void execute()
    {
            Write();
            string name = Console.ReadLine();
            Write();
            string name1 = Console.ReadLine();
            Write();
            string name2 = Console.ReadLine();
            Write();
            string name3 = Console.ReadLine();
    
             Console.WriteLine("{0}, {1}, {2}, {3}",name,name1,name2,name3);
    
             Console.WriteLine("enter \"y\" to restart the program and \"n\" to exit the Program");
             string selectedOption = Console.ReadLine();
    
    }
    

    then in the main

    static void Main(string[] args)
    {
        bool run = true
        while(run){
           execute()
           Console.WriteLine("enter \"y\" to restart the program and \"n\" to exit the Program");
            selectedOption = Console.ReadLine();
            if (selectedOption == "n")
            {
                 run = false;
            }    
        }
    }
    
    0 讨论(0)
  • 2021-01-23 21:09

    Just call the method again, passing in the same arguments that where passed in initially, also try to avoid using goto if you can:

    if (selectedOption == "y")
    {
        // howto call  static void Main(string[] args) here agin so that the program start itself from the start point
        Main(args);
    }    
    
    0 讨论(0)
  • 2021-01-23 21:13

    something like this :

    static void Main(string[] args)
                {      
                    string selectedOption = "";
    
                     do 
                     {
    
                                   ...........
    
                     }
                     while (selectedOption == "y")
    
                     if (selectedOption == "n")
                     {
                       //Terminate the Program
                      }
    
                 } 
    
    0 讨论(0)
  • 2021-01-23 21:16

    Firstly, your label is incorrect. The end of a label should have a colon character :.. so your label should have been this:

    StartPoint:
    

    However:

    You should just loop until a condition is met. In this case.. the condition is to not restart:

    bool running = true;
    
    while (running) {
        /* 
         * all of your other code
         * should go here
         */
        if (selectedOption != "y") {
            running = false;
        }
    }
    
    0 讨论(0)
  • 2021-01-23 21:25

    You realy should not use a goto or call your Main again (recursion), do while is a better solution to repeat your logic muliple times:

        string selectedOption;
        do {
            Write();
            string name = Console.ReadLine();
            Write();
            string name1 = Console.ReadLine();
            Write();
            string name2 = Console.ReadLine();
            Write();
            string name3 = Console.ReadLine();
    
             Console.WriteLine("{0}, {1}, {2}, {3}",name,name1,name2,name3);
    
             Console.WriteLine("enter \"y\" to restart the program and \"n\" to exit the Program");
             selectedOption = Console.ReadLine();
          } while (selectedOption == "y")
          Console.ReadKey();
    
    0 讨论(0)
提交回复
热议问题