我有一个类似于以下内容的控制台应用程序:
static void Main(string[] args)
{
if(args.Length == 0)
{
//do something
}
else if(args.Length % 2 == 0)
{
//do something else
}
}
现在,当我构建并启动我的.exe文件时,它眨眼即可运行代码并关闭。
.exe是否有可能在启动后等我输入参数?
我知道我可以打开cmd并将目录写入文件并写入参数(C:\ Example \ MyExe.exe -Parameter1)。但这是唯一的方法吗?
答案 0 :(得分:4)
.exe是否有可能在启动后等我输入参数?
它不会等待args
,因为应该在启动应用程序时将它们传递给您,但是您可以实现您的应用程序以使用Console.ReadLine
接受用户输入。这是一个示例:
static void Main(string[] args)
{
if (args.Length == 0)
{
List<string> arguments = new List<string>();
do
{
Console.WriteLine("Input argument and press <ENTER>: ");
string argument = Console.ReadLine();
if (string.IsNullOrEmpty(argument))
break;
arguments.Add(argument);
} while (true);
Console.WriteLine("continue...");
}
else if (args.Length % 2 == 0)
{
//do something else
}
}
答案 1 :(得分:1)
如果您的应用程序打开并立即关闭,那是因为没有“阻塞”方法。您可以在末尾添加Console.Read();
,以等待按键被按下。
例如:
static void Main(string[] args)
{
if(args.Length == 0)
{
//do something
}
else if(args.Length % 2 == 0)
{
//do something else
}
Console.WriteLine("Press any key to exit the application.");
Console.Read();
}
要传递参数,我习惯使用cmd
并将参数直接传递给exe,但这可以在VS中完成
右键单击项目->属性->调试->命令行参数
答案 2 :(得分:1)
是的,这是唯一的方法,因为在启动应用程序时会传递参数。
如果要调试,可以在Visual Studio中添加调试参数。为此,在项目上单击鼠标右键,然后打开项目的设置。然后,您可以在调试部分中添加它们。
请查看Passing command line parameters with Visual Studio C# 以获得更多信息。
更多信息:如果要让应用程序保持打开状态直到用户按下键,您可以使用Console.Read();
。
答案 3 :(得分:1)
答案 4 :(得分:1)
如果添加以下行:
Console.ReadLine();
控制台将保持打开状态,直到按下键为止。
因此您的代码应为:
static void Main(string[] args)
{
if(args.Length == 0)
{
//do something
}
else if(args.Length % 2 == 0)
{
//do something else
}
Console.ReadLine();
}
要通过Visual Studio传递一些参数:右键单击项目-> 属性-> 调试-> 命令行参数 >
答案 5 :(得分:0)
在else if(){}完成之后写Console.Readkey()...
在您按Enter键之前,控制台不会关闭