进入是错误

时间:2013-05-09 00:13:48

标签: c#

我有这个:

static void Main(string[] arg)

Main("month");

但出于某种原因,这会产生错误:

  

'Numbers.Program.Main(string [])'的最佳重载方法匹配有一些无效的参数

  

参数1:无法从'string'转换为'string []'

如何解决这些问题?

2 个答案:

答案 0 :(得分:3)

其他答案是正确的(编译器不允许您将字符串作为参数传递给期望字符串数组的方法),但另一种方法是更改​​Main方法的方法签名,如此:

static void Main(params string[] arg)

params keyword允许分别传递参数而不是数组。因此,以下调用将是等效的:

Main("month");
Main(new string[] {"month"});

顺便说一句 - 虽然它是合法的,但从您自己的程序中调用Main方法(您的程序的入口点)并不常见。根据您的要求,您可能需要考虑一个只有一个字符串作为参数的新方法,例如:

public static void MyMethod(string s)
{
      // your code
}

// in your Main method
MyMethod("month");

答案 1 :(得分:0)

String是一个String。 String[]是一个字符串数组。

试试这个:

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

有关数组和声明/实例化它们的详细信息,请参阅http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx