2017-07-13 7 views
-2

私は... 私のコードをコマンドライン引数を解析するためのプログラムを作った:特定の引数が存在するかどうかを確認する方法?

for (var x = 0; x < args.Length; x++) 
     { 
      switch (args[x].Trim()) 
      { 
       case "--message": 
        if (args[x + 1] == null) // <= the problem 
        { 
         Console.WriteLine("Option {0} requires an argument.", args[x]); 
         Environment.Exit(1); 
        } 
        else 
        { 
         Console.WriteLine("Your message: " + args[x + 1]); 
         Environment.Exit(0); 
        } 
        break; 
      } 
     } 

私が入力したときにそう:「myprogram.exeという--message mymessage」を、プログラムはエラーなしで私のメッセージを出力します。しかし、私の問題は:メッセージが指定されていない場合: 'myprogram.exe - メッセージ'、args [x + 1]が存在しないためクラッシュします。 args [x + 1]が存在するかどうかを確認するにはどうすればよいですか?

PS:ありがとうございますdownvote!

ありがとうございました! -AppPrinter

+0

(args.length> x + 1){存在} '' ' – tym32167

+0

@ tym32167素早く答えてくれてありがとうございました;)しかし、私はあなた自身のロジックを書く必要はありませんでした。 '<'の代わりに '<'を書く – AppPrinter

答えて

0

あなたargsに少なくともX + 1つのアイテムを持っているかどうかを確認するために

if (args.Length <= x + 1 && args[x + 1] == null) 

if (args[x + 1] == null) 

を交換してください。 #

ちょっとしたアイデア:コマンドラインパラメータを解析するためのフレームワークがいくつかあります。

+0

ありがとう!しかし私はすでに私のsoloutionを持っています:if(args.Length <= x + 1){...} – AppPrinter

関連する問題