c# - 如何在类里面再次调用 "static void Main(string[] args) "

标签 c# .net console console-application

我是 C# 的新手,现在在控制台应用程序上工作,我写了以下代码:

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch06Ex01
{
    class Program
    {
        static void Write()
        {
            Console.WriteLine("Please enter any string..!!");
        }

         static void Main(string[] args)
        {       

            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();

             if (selectedOption == "y")
             {
                 // howto call  static void Main(string[] args) here agin so that the program start itself from the start point

             }    

             //else if (selectedOption == "n")
            {
               //Terminate the Program
             }
             Console.ReadKey();
         }      

    }

现在是:

 if (selectedOption == "y")
             {
                 // howto call  static void Main(string[] args) here agin so that the program start itself from the start point

             }    

我想在用户输入“y”时重启程序,在用户输入“n”时终止它,为此,我首先尝试使用 goto 语句,例如:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ch06Ex01
{
    class Program
    {
        static void Write()
        {
            Console.WriteLine("Please enter any string..!!");
        }

         static void Main(string[] args)
        {
            StartPoint;

            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();

             if (selectedOption == "y")
             {
                 // howto call  static void Main(string[] args) here agin so that the program start itself from the start point
                 goto StartPoint;
             }    

             //else if (selectedOption == "n")
             Console.ReadKey();
         }      

    }
}

但它在 StartPoint; 对我不起作用,它给出了错误

Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement   C:\Users\Ahsan\Desktop\C# for Beginners Examples\Ch06Ex01\Ch06Ex01\Program.cs   18  13  Ch06Ex01

然后我尝试调用 main 函数本身

 if (selectedOption == "y")
         {
             // howto call  static void Main(string[] args) here agin so that the program start itself from the start point

         }    

但它在这里给了我很多错误,现在不知道该怎么做,有人可以帮我吗?不知道如何做这件事…… 再次在类中调用“static void Main(string[] args) ”将是首选....

最佳答案

首先,您的标签不正确。标签的末尾应该有一个冒号字符 :.. 所以你的标签应该是这样的:

StartPoint:

但是:

您应该循环直到满足条件。在这种情况下..条件是不重新启动:

bool running = true;

while (running) {
    /* 
     * all of your other code
     * should go here
     */
    if (selectedOption != "y") {
        running = false;
    }
}

关于c# - 如何在类里面再次调用 "static void Main(string[] args) ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655806/

相关文章:

c# - 在 C# 中编码字符

c# - a = (x == null) 的最佳语法?空 : x. 函数()

c# - 如何从 double 转换为 Int64

c# - Firebird 在 .NET 中发送所有事件

c# - 如何自动关闭控制台应用程序窗口

c# - 尝试访问 Xamarin.Forms Android 上的服务器时引发 System.AggregateException

c# - 领域事件的并发问题

python - 在 Azure 数据工厂上运行 .Net 和 Python 应用程序?

console - 从 Visual Studio Code 中的控制台输出跳转到源代码

java - 如何从 .jar 存档运行 java 类?