C#编译器无法识别主页

时间:2009-08-12 15:47:11

标签: c# .net

程序“”定义了多个入口点:'Class.Main()'。使用/ main编译以指定包含入口点的类型。

我已搜索并搜索过,并且只找到了指定入口点类(/ main:class)但不是类型的语法。有人可以帮忙吗?

static void Main()
{
}

static void Main(string[] args)
{
}

4 个答案:

答案 0 :(得分:7)

基本上你不能这样做。

您只能指定类型是一个入口点,而不是类型中的主要重载应该是入口点。

如果要将代码保持在相同的外部类型中,可以创建包含其中一个的嵌套类:

using System;
using System.IO;
using System.Text.RegularExpressions;

class Test
{
    class Parameterless
    {
        static void Main()
        {
        }
    }

    static void Main(string[] args){}
}

然后,您需要使用/main:Test/main:Test.Parameterless,具体取决于您要调用的那个,或者在Visual Studio的项目属性中使用应用程序入口点。

答案 1 :(得分:4)

我认为不可能超载main,原因如下:程序中只能有一个入口点!

“/ main”允许你做的是指定包含主入口点的类型(即类或结构),而不是签名(即哪个重载),因此编译器会有歧义。

答案 2 :(得分:3)

Main()的规则允许您列出的两种形式的Main,但在类中任何一次只能出现一种形式。如果他们在不同的类中,您可以使用它来解决问题。您看到的是重载规则未涵盖的一个案例。

答案 3 :(得分:1)

作为最后的手段,你可以尝试

static void Main(string[] args)
{
    if (args == null)
    {

    }
    else
    {

    }
}

可能不是最好的方法,但它会起作用。具有2个入口点的应用程序的概念是违背的。