使用System; 使用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);
}
}
}
谢谢。
答案 0 :(得分:4)
因为参数是String而不是预期的字符串数组
答案 1 :(得分:4)
请参阅this了解Main
方法签名选项。
答案 2 :(得分:4)
Main
方法的唯一有效签名是:
static void Main()
和
static void Main(string[])
static void Main(string)
不是Main
方法的有效签名。
答案 3 :(得分:4)
在您提供的代码中,问题是'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[] <aName> // can be ommited discarding CLI parameters
* is the command line parameters space break(ed)
来自MS (......) Main方法可以使用参数, 在这种情况下,它采用以下形式之一:
static int Main(string[] args)
static void Main(string[] args)
答案 4 :(得分:2)
主要方法的签名必须是main(String[])
,而不是main(String)
。