0

私はこれを持っています:

static void Main(string[] arg)

と:

Main("month");

しかし、何らかの理由で、これによりエラーが発生します。

'Numbers.Program.Main(string[])' に最もよく一致するオーバーロードされたメソッドには、いくつかの無効な引数があります

引数 1: 'string' から 'string[]' に変換できません

これらを修正するにはどうすればよいですか?

4

2 に答える 2

3

他の答えは正しいです (コンパイラは、文字列配列を期待するメソッドに引数として文字列を渡すことを許可しません)、別の方法は、メソッドのメソッド シグネチャを次の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");
于 2013-05-09T00:27:21.980 に答える
0

文字列は 1 つの文字列です。String[]文字列の配列です。

これを試して:

String[] parameters = new String[] {"month"};
Main(parameters);

配列とその宣言/インスタンス化の詳細については、 http://msdn.microsoft.com/en-us/library/aa288453 (v=vs.71).aspx を参照してください。

于 2013-05-09T00:15:51.350 に答える