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

时间:2010-01-15 04:55:18

标签: c# syntax

使用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);
        }
    }
}

谢谢。

5 个答案:

答案 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)