2017-06-23 123 views
0
static void Main(string[] args) 
     { 
      origination = args[1]; 
      desti = args[3]; 
      Console.ReadLine(); 
      string[] args1 = Environment.GetCommandLineArgs(); 
        origination = args1[1]; 
        desti = args1[3]; 
} 

我有问题,我第一次获得命令参数 的权值,但是当我申请命令提示符ARGS新的价值观也没有更新的新值其总是返回旧值 我需要帮助当用户添加新的命令参数时如何获得最新的值。命令行参数问题

+0

你是什么意思'添加'新的命令参数?命令参数仅在调用命令时传递;他们不能在以后更改 – Rob

+0

所以如果我通过设置项目 - >属性 - >调试应用默认参数什么是其他选项我得到的默认结果,但现在我想添加更改或重写编写该默认参数以获得新的结果如何覆盖? – cshah

+0

另外,当我在调试模式下运行它给我的结果基于默认的参数值,但是当我运行search.exe,然后按下输入什么都没有在命令提示符上 – cshah

回答

0

这是因为Environment.GetCommandLineArgs()在调用它时将参数传递给进程。您实际上正在重新阅读它们,而您被要求输入的文本却无处可寻。你需要的是

string newArg = Console.ReadLine(); 
string[] newArgs = Regex.Split(newArg, " "); 

其中RegexSystem.Text.RegularExpressions命名方法。

+2

为什么使用正则表达式类?为什么不使用String.split方法? string [] splitted = newArg.split(''); –

+0

@jαsοη其实你是对的,最简单的。 –