关闭控制台应用程序的命令?

当用户选择菜单选项时,我需要关闭控制台。

我尝试使用 close(),但它不工作. 。

我该怎么做?

302051 次浏览

Environment.Exit and Application.Exit

Environment.Exit(0) is cleaner.

http://geekswithblogs.net/mtreadwell/archive/2004/06/06/6123.aspx

By close, do you mean you want the current instance of the console app to close, or do you want the application process, to terminate? Missed that all important exit code:

Environment.Exit(0);

Or to close the current instance of the form:

this.Close();

Useful link.

You can Try This

Application.Exit();
 //How to start another application from the current application
Process runProg = new Process();
runProg.StartInfo.FileName = pathToFile; //the path of the application
runProg.StartInfo.Arguments = genArgs; //any arguments you want to pass
runProg.StartInfo.CreateNoWindow = true;
runProg.Start();


//How to end the same application from the current application
int IDstring = System.Convert.ToInt32(runProg.Id.ToString());
Process tempProc = Process.GetProcessById(IDstring);
tempProc.CloseMainWindow();
tempProc.WaitForExit();

So you didn't say you wanted the application to quit or exit abruptly, so as another option, perhaps just have the response loop end out elegantly. (I am assuming you have a while loop waiting for user instructions. This is some code from a project I just wrote today.

        Console.WriteLine("College File Processor");
Console.WriteLine("*************************************");
Console.WriteLine("(H)elp");
Console.WriteLine("Process (W)orkouts");
Console.WriteLine("Process (I)nterviews");
Console.WriteLine("Process (P)ro Days");
Console.WriteLine("(S)tart Processing");
Console.WriteLine("E(x)it");
Console.WriteLine("*************************************");


string response = "";
string videotype = "";
bool starting = false;
bool exiting = false;


response = Console.ReadLine();


while ( response != "" )
{
switch ( response  )
{
case "H":
case "h":
DisplayHelp();
break;


case "W":
case "w":
Console.WriteLine("Video Type set to Workout");
videotype = "W";
break;


case "I":
case "i":
Console.WriteLine("Video Type set to Interview");
videotype = "I";
break;


case "P":
case "p":
Console.WriteLine("Video Type set to Pro Day");
videotype = "P";
break;


case "S":
case "s":
if ( videotype == "" )
{
Console.WriteLine("Please Select Video Type Before Starting");
}
else
{
Console.WriteLine("Starting...");
starting = true;
}
break;


case "E":
case "e":
Console.WriteLine("Good Bye!");
System.Threading.Thread.Sleep(100);
exiting = true;
break;
}


if ( starting || exiting)
{
break;
}
else
{
response = Console.ReadLine();
}
}


if ( starting )
{
ProcessFiles();
}

return; will exit a method in C#.

See code snippet below

using System;


namespace Exercise_strings
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Input string separated by -");


var stringInput = Console.ReadLine();


if (string.IsNullOrWhiteSpace(stringInput))
{
Console.WriteLine("Nothing entered");
return;
}
}

So in this case if a user enters a null string or whitespace, the use of the return method terminates the Main method elegantly.