C# 控制台应用程序应等待参数
我有一个控制台应用程序,看起来与此类似:C# 控制台应用程序应等待参数,c#,parameters,arguments,console-application,C#,Parameters,Arguments,Console Application,我有一个控制台应用程序,看起来与此类似: static void Main(string[] args) { if(args.Length == 0) { //do something } else if(args.Length % 2 == 0) { //do something else } } 现在,当我构建并启动我的.exe文件时,它会在眨眼间打开并运行代码,然后关闭 .exe是否可能在启动后等待我输入参数 我知道我可以打开c
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)。但是这是唯一的方法吗?如果应用程序打开并立即关闭,那是因为没有“阻塞”方法。您可以添加一个
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中完成
右键单击project->Properties->Debug->Command Line ArgumentsYes这是唯一的方法,因为启动应用程序时会传递参数
如果要调试,可以在Visual Studio中添加调试参数。为此,右键单击项目并打开项目的设置。然后可以在调试部分添加它们
请查看以了解更多信息
进一步信息:如果您想让应用程序保持打开状态,直到用户按下一个键,您可以使用Console.Read()代码>用于此
右键单击默认项目
选择“属性”
单击左侧的“调试”选项卡李>
在“命令行参数”中键入命令行参数
保存更新的属性并运行项目
.exe是否可能在启动后等待我输入参数
它不会等待参数
,因为这些参数应该在启动应用程序时传入,但您可以使用控制台实现应用程序以接受用户输入。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
}
}
static void Main(字符串[]args)
{
如果(args.Length==0)
{
列表参数=新列表();
做
{
Console.WriteLine(“输入参数并按:”);
字符串参数=Console.ReadLine();
if(string.IsNullOrEmpty(参数))
打破
参数。添加(参数);
}虽然(正确);
Console.WriteLine(“继续…”);
}
else if(args.Length%2==0)
{
//做点别的
}
}
如果添加行:
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传递一些参数,请在项目上单击鼠标右键->属性->调试->命令行参数写入控制台。在else if(){}完成后单击Readkey()
在您按enter键之前,控制台将不会关闭。Visual Studio在项目属性中有一个页面,您可以在其中为应用程序放置默认参数。否则,您需要对一系列Console.ReadLine进行编码,以便直接在应用程序中获取所需的输入。它不会等待args
,因为这些参数在启动应用程序时传递,但是,您可以通过使用Console.ReadLine
实现您的应用程序以接受用户输入。您没有显示会使控制台等待输入的代码。与其他一些脚本IDE不同,如果希望得到提示,则必须编写代码。如果您的查询是关于如何指示visual studio为应用程序提供命令行参数,那么您应该转到“项目属性”,在“调试”选项卡中,有一个“命令行参数”框,您可以在其中输入此信息。提示可能重复:您可以点击CTR+F5(在不使用调试器的情况下运行)来运行控制台应用程序。这将在关闭控制台窗口之前自动等待按键。这样你就不能测试“做其他事情”。命令行参数看起来很有希望。但我这里的问题是,可能不传递任何参数,或者最多传递10个参数。我想用调试参数无法解决这个问题?@axbeit没有参数有什么问题?您的代码如果(args.Length==0)
将被执行。看起来你有不止一个问题。您想要启动参数(就像您在代码中使用的那样)还是想要用户输入作为参数?好的,所以我在命令行参数中输入了以下内容:“Argument1 Argument2 Argument3”。然后我构建我的项目。双击MyExe.exe,窗口很快就会弹出并关闭。但是我希望它能让我写下我的论点,而不是关闭它。看看mm8的答案。下一个问题要更具体;)当我们知道您想要实现的目标而不是询问您时,这会容易得多。命令行参数看起来很有希望。但我这里的问题是,可能不传递任何参数,或者最多传递10个参数。我猜这不能用调试参数来解决?在这种情况下,你可以创建第二个应用程序并运行进程。用你的参数(或不参数)启动你的应用程序。