【问题标题】:Main method error after renaming enclosing class重命名封闭类后的主要方法错误
【发布时间】:2014-10-16 14:13:22
【问题描述】:

我正在学习 learncs.org 上的第一个教程并有一个问题。

这是示例中的代码:

using System;

public class Hello
{
    public static void Main()
    {
        System.Console.WriteLine("Goodbye, World!");
    }
}

这会在控制台中返回再见,世界,如图所示。 但是一旦我将公共课程Hello 更改为Hello2,它就不再起作用了。该教程没有显示它是如何执行的,所以我不知道它是如何完成的。

如果我将它命名为 Hello2,任何人都知道如何执行它?我试过了,但效果不太好:

using Hello2.Main();

以下是实际示例:Hello, World!

【问题讨论】:

  • 该类通常命名为Program,但如果我将其更改为Program2,它仍然对我有用。
  • 您的链接已失效 :)
  • 你在网站上运行这个。如果您从 Visual Studio 运行它,更改类名不会影响任何内容。
  • 当你试图学习一门语言时,你不应该处理教程,而是要处理语言。换个教程,看起来不太好。选择 CodeAcademy。
  • 试试这本来自程序员天堂的免费电子书。它有点旧,它涵盖了 C# 2,但非常简单:ebooks.programmersheaven.com/csharp_ebook.pdf

标签: c# rename main


【解决方案1】:

运行时正在调用Main 函数。它通常只会在您的程序中找到名为Main 的第一个函数并执行它。

然而如果您在项目设置的应用程序选项卡中明确设置启动对象,如果该类没有名为 Main 的函数(或者如果该类不存在),它将失败)。

尝试将其设置为“(未设置)”或您新命名的类,它应该可以工作。

【讨论】:

    【解决方案2】:

    您应该为您的应用程序设置 Startup 对象。右键单击项目,转到项目属性-> 应用程序,将启动对象更改为Hello2

    请记住,只要您的应用程序中有一个入口点,即public static Main 方法并且您将启动对象指定为(Not Set),它就应该可以工作。

    但如果你有多个类使用Main 方法,那么你必须显式指定 Startup 对象,(通过 GUI 或编译选项) 否则你会报错:

    Application.exe 定义了多个入口点: 'Application.Hello2.Main()'。使用 /main 编译以指定类型 包含入口点。

    【讨论】:

    • 为什么一定是创业班?为什么我想用的时候就不能随便用?
    • @ZeeTee 问题是您随时使用它。 某事需要开始。然后可以调用任何你想要的。您不是在这样做,而是在更改 main 的位置。
    • @ZeeTee,运行时必须遵循规范,规范说要在应用程序中找到入口点,然后执行它。正如我在回答中所说,如果您只有一个 Main 方法,那么只要您将 Startup 对象指定为 Not Set,您对类名称的更改就应该有效。
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    相关资源
    最近更新 更多