2017-08-22 17 views
1

文字列コマンドライン引数を自己定義の文字列変数に格納するにはどうすればよいですか?それは...ここC#「コマンドライン引数の例外」

コードはあなたが最初の2つのコマンドライン引数(agrs[0]args[1])にアクセスしようとしている、

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace Prac1_e 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Enter a String and a number : "); 
      Console.Read(); 
      string str = args[0]; 
      int n = Convert.ToInt32(args[1]); 
      Console.WriteLine(str); 
      Console.WriteLine(n); 
      Console.ReadKey(); 
     } 
    } 
} 
+1

は、アプリケーションに引数を渡しているあなたは –

+0

に入力した入力文字列を表示してください? –

+1

コマンドラインで引数を指定してプログラムを実行すると、値を持つ 'arg'が読み込まれます。実行時引数が必要な場合は、 'Console.Read();'から読み込む必要があります。戻り値の型はstringです。 – praty

答えて

1

で、「レンジ範囲外の配列のインデックス」を与える傾向としてではなく、いずれも通過していません。ただ、いくつかの引数を渡すと、あなたは問題ないはずです。

Program somearg anotherarg 
0

引数は、あなたがIntに変換されているので、あなたはarg[1]であることを検証することがあり、また、その他のフォーマットappname.exe "arg1" "arg2"でコマンドラインを介して渡される必要がありますIntに変換可能です。

static void Main(string[] args) 
    { 
     Console.WriteLine("Enter a String and a number : "); 
     Console.Read(); 
     if(args.Length >= 2) 
     { 
      string str = args[0]; 
      int n = Convert.ToInt32(args[1]); 
      Console.WriteLine(str); 
      Console.WriteLine(n); 
      Console.ReadKey(); 
     } 
     else 
     { 
      Console.WriteLine("No Args passed"); 
     } 
    } 

あなたは、コマンドラインを介して実行時パラメータをキャプチャするために探しているなら、あなたは以下のような何かをする必要があります:

static void Main(string[] args) 
    { 
     Console.WriteLine("Enter a String and a number, with a space between: "); 
     string consoleRead = Console.ReadLine(); 
     string[] parsed = consoleRead.Split(' '); 
     if (parsed.Length > 1) 
     { 
      string str = parsed[0]; 
      int n = Convert.ToInt32(parsed [1]); 
      Console.WriteLine(str); 
      Console.WriteLine(n); 
      Console.ReadKey(); 
     } 
    } 
0

コマンドから実行時に渡される引数を読み取るようにする場合あなたはConsoleオブジェクトから読み込む必要があります。このコードを試すことができます。

static void Main(string[] args) 
    { 
     Console.WriteLine("Enter a String and a number : "); 

     string str = Console.ReadLine(); 
     int n = Convert.ToInt32(Console.ReadLine()); 
     Console.WriteLine(str); 
     Console.WriteLine(n); 
     Console.ReadKey(); 
    } 
+0

@KamleshSharmaは、彼が本当にコマンドライン引数を読んでみたかったら。 – praty

+0

私の答えを編集しました。これが以前よりも説明的であることを願っています。 – praty

+0

確かに、それはあなたの答えの質を高めます。 :) –

0

このコードには誤りはありません。しかし、プログラムを間違って実行すると、上記のエラーが発生します。 これは正しい方法でなければなりません:

[program name] [argument 1] [argument 2] 

例:

testprogram arg1 5