Main(字符串args)的入口点错误?

使用系统; 使用System.Collections.Generic; 使用System.Text;

namespace MyConApp { class Program { static void Main(string[] args) { string[] tmpString; tmpString = args; Console.WriteLine("Hello" + tmpString[0].ToString()); } } } 

为什么下面的表达式显示编译错误消息“不包含适用于入口点的静态’Main’方法”

 namespace MyConApp { class Program { static void Main(string args) { string tmpString; tmpString = args; Console.WriteLine("Hello" + tmpString); } } } 

谢谢。

请参阅此内容以了解Main方法签名选项。

因为参数是String而不是预期的String Array

Main方法唯一有效的签名是:

 static void Main() 

 static void Main(string[]) 

static void Main(string)不是Main方法的有效签名。

在您提供的代码中,问题是’Main’入口点期望在调用程序时从系统传递的字符串数组(此数组可以为null,没有元素)

纠正变化

 static void Main(string args) 

 static void Main(string[] args) 

如果您声明除’void’或’int’之外的任何类型的’Main’,您可能会收到相同的错误

所以’Main’方法的签名一直是

 static // ie not dynamic, reference to method must exist public // ie be accessible from the framework invoker Main // is the name that the framework invoker will call string[]  // can be ommited discarding CLI parameters * is the command line parameters space break(ed) 

从MS(…)Main方法可以使用参数,在这种情况下,它采用以下forms之一:

 static int Main(string[] args) static void Main(string[] args) 

main方法的签名必须是main(String[]) ,而不是main(String)