为了账号安全,请及时绑定邮箱和手机立即绑定

控制台应用程序应等待参数

控制台应用程序应等待参数

C#
慕尼黑8549860 2022-11-22 15:30:53

我有一个类似于此的控制台应用程序:


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)。但这是唯一的方法吗?


查看完整描述

4 回答

?
海绵宝宝撒

TA贡献1497条经验 获得超8个赞

有没有可能这个.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

    }

}


查看完整回答
反对 回复 2022-11-22
?
慕哥9229398

TA贡献1607条经验 获得超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中完成


右键单击项目 -> 属性 -> 调试 -> 命令行参数


查看完整回答
反对 回复 2022-11-22
?
三国纷争

TA贡献1545条经验 获得超7个赞

  1. 右键单击默认项目

  2. 选择“属性”

  3. 单击左侧的“调试”选项卡。

  4. 在“命令行参数”中键入命令行参数。

  5. 保存更新的属性并运行项目。


查看完整回答
反对 回复 2022-11-22
?
开心每一天1111

TA贡献1541条经验 获得超11个赞

是的,这是唯一的方法,因为参数是在启动应用程序时传递的。

如果要调试它,可以在 Visual Studio 中添加调试参数。为此,右键单击项目并打开项目的设置。然后您可以将它们添加到调试部分。

查看使用 Visual Studio C# 传递命令行参数以 获取更多信息。

更多信息:如果您想让您的应用程序保持打开状态,直到用户按下您可以使用的键Console.Read();


查看完整回答
反对 回复 2022-11-22
  • 4 回答
  • 0 关注
  • 12 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信