我有这个:
static void Main(string[] arg)
和
Main("month");
但出于某种原因,这会产生错误:
'Numbers.Program.Main(string [])'的最佳重载方法匹配有一些无效的参数
和
参数1:无法从'string'转换为'string []'
如何解决这些问题?
答案 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。