2017-06-23 4 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]; 
} 

私は助けを必要とユーザーが新しいコマンド引数を追加したときに最新値を取得する方法。コマンドライン引数の問題、私はそれがその常に返す古い値、新しい値を更新していない私は、コマンド引数 の正しい値を取得していますが、私は、コマンドプロンプト引数に新しい値を適用していたときに問題が最初の時間を過ごしてい

+0

新しいコマンド引数を「追加」することはどういう意味ですか?コマンド引数は、コマンドの呼び出し時にのみ渡されます。彼らは後で変更することはできません – Rob

+0

私はデフォルトのargsを設定することによって他のオプションは何ですか?プロジェクト - >プロパティ - >デバッグ私はデフォルトの結果を取得していますが、今は変更を追加するか、上書きする方法は? – cshah

+0

また、デバッグモードで実行しているときにデフォルトのargs値に基づいて結果が得られますが、search.exeを実行すると、何も入力せずにコマンドプロンプトが表示されます – cshah

答えて

0

これは、Environment.GetCommandLineArgs()が、呼び出された時点でプロセスに渡された引数を取るためです。あなたは実際にそれらを再読しています。あなたが入力するよう求められたテキストはどこにも行きません。何が必要RegexSystem.Text.RegularExpressions名前空間の方法である

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

です。

+2

なぜRegexクラスを使用するのですか?なぜString.splitメソッドを使用しないのですか? string [] splitted = newArg.split( ''); –

+0

@jαsοη実際にあなたは正しい、最も簡単です。 –

関連する問題