我正在尝试在C#应用程序中读取用户参数.我知道如何根据位置阅读它们
string[] args = Environment.GetCommandLineArgs();
Run Code Online (Sandbox Code Playgroud)
但是我想从开关中读取它们
app.exe /f /d:foo
Run Code Online (Sandbox Code Playgroud)
我真的很难找到关于这样做的任何信息......
Jas*_*son 25
你为什么不解析传递的参数数组并根据它们采取行动,就像这样
foreach (string arg in args)
{
switch (arg.Substring(0, 2).ToUpper())
{
case "/F":
// process argument...
break;
case "/Z":
// process arg...
break;
case "/D":
paramD = arg.Substring(3);
break;
default:
// do other stuff...
break;
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我已经看到了几个循环遍历 args 字符串集合的答案 - 问题是您在按下要查找的开关后需要下一个项目。我使用集合的数组索引来获取下一个项目。
在我的示例中,我正在寻找服务器和端口 /S 和 /P。我希望这可以帮助别人:
var server = string.Empty;
var port = string.Empty;
for(var x = 0; x < args.Count(); x++)
{
switch (args[x].Trim().ToUpper())
{
case "/S":
server = args[x + 1];
break;
case "/P":
port = args[x + 1];
break;
}
}
Run Code Online (Sandbox Code Playgroud)