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

字符串是一个字符串。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 回答