【问题标题】:Main method entry point with string argument gives "does not contain ... suitable ... entry point" error带有字符串参数的主方法入口点给出“不包含......合适的......入口点”错误
【发布时间】:2010-01-15 04:55:18
【问题描述】:

为什么下面的代码块会给出“不包含适合入口点的静态'Main'方法”的编译错误?

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

【问题讨论】:

    标签: c# syntax


    【解决方案1】:

    在您提供的代码中,问题是“主”入口点需要在调用程序时从系统传递的字符串数组(该数组可以为空,没有元素)

    纠正变化

    static void Main(string args) 
    

    static void Main(string[] args) 
    

    如果你声明你的 'Main' 为 'void' 或 'int' 以外的任何类型,你可能会得到同样的错误

    所以'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)
    

    【讨论】:

      【解决方案2】:

      因为参数是字符串而不是预期的字符串数组

      【讨论】:

        【解决方案3】:

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

        static void Main()
        

        static void Main(string[])
        

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

        【讨论】:

        • 其实返回类型也可能是int而不是void。
        【解决方案4】:

        请参阅 this 以了解 Main 方法签名选项。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 2022-07-06
            • 2013-06-10
            • 2013-04-14
            • 2014-12-13
            • 1970-01-01
            • 2018-05-02
            • 2013-06-10
            • 1970-01-01
            相关资源
            最近更新 更多