私はこれを持っています:
static void Main(string[] arg)
と:
Main("month");
しかし、何らかの理由で、これによりエラーが発生します。
'Numbers.Program.Main(string[])' に最もよく一致するオーバーロードされたメソッドには、いくつかの無効な引数があります
と
引数 1: 'string' から 'string[]' に変換できません
これらを修正するにはどうすればよいですか?
私はこれを持っています:
static void Main(string[] arg)
と:
Main("month");
しかし、何らかの理由で、これによりエラーが発生します。
'Numbers.Program.Main(string[])' に最もよく一致するオーバーロードされたメソッドには、いくつかの無効な引数があります
と
引数 1: 'string' から 'string[]' に変換できません
これらを修正するにはどうすればよいですか?
他の答えは正しいです (コンパイラは、文字列配列を期待するメソッドに引数として文字列を渡すことを許可しません)、別の方法は、メソッドのメソッド シグネチャを次のMain
ように変更することです。
static void Main(params string[] arg)
このparams
キーワードを使用すると、引数を配列ではなく個別に渡すことができます。したがって、次の呼び出しは同等です。
Main("month");
Main(new string[] {"month"});
ちなみに -- 正当ではありMain
ますが、独自のプログラムからメソッド (プログラムのエントリ ポイント) を呼び出すことは一般的ではありません。要件によっては、引数として単一の文字列のみを持つ新しいメソッドを検討することをお勧めします。たとえば、次のようになります。
public static void MyMethod(string s)
{
// your code
}
// in your Main method
MyMethod("month");
文字列は 1 つの文字列です。String[]
文字列の配列です。
これを試して:
String[] parameters = new String[] {"month"};
Main(parameters);
配列とその宣言/インスタンス化の詳細については、 http://msdn.microsoft.com/en-us/library/aa288453 (v=vs.71).aspx を参照してください。