【问题标题】:The compiler throws CS5001 code, and I can't fix it [duplicate]编译器抛出 CS5001 代码,我无法修复它[重复]
【发布时间】:2020-04-15 14:46:19
【问题描述】:

我在前面的问题中找不到解决方案。请帮忙。我想做更多的练习并以不同的方式进行。就像现在运行 Excercise1() 一样,我可以以不同的方式运行它。我应该需要一个调用练习的函数。我做不到,但如果我有 1 个练习,它也不起作用,因为“CS5001 C# 程序不包含适合入口点的静态‘主’方法”。对不起,如果我的问题是微不足道的,对我来说不是。你能帮我解决这个主要方法吗?

  using System;
  namespace normal
  {
    public class Program
    {
      public static void Excercise1()
         {}
//I want something like this more: 
      public static void Excercise2()
      { }
    }
  }

【问题讨论】:

  • 对于无法解决的问题,您应该开始做的第一件事是搜索错误消息。仅在这个网站上,就有数以百万计的答案等着你。

标签: c# .net methods main


【解决方案1】:

C# 程序必须有一个名为Main 的静态方法才能有效。它具有以下签名:

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

因此,您的程序应如下所示:

using System;

namespace Normal
{
  public class Program
  {
    private static void Main(string[] args)
    {
      Exercise1();
      Exercise2();
    }
    public static void Excercise1()
    {
    }
    public static void Excercise2()
    {
    }
  }
}

如果没有Main 静态方法,C# 编译器将不知道程序的起点在哪里。

当然,在某些情况下您不需要程序的入口点。当你在开发一个库(一个DLL)时,它并不是要自己运行,而是其他代码会调用它的方法。不过,在这种情况下,我认为您的目标是具有实际入口点的程序。

【讨论】:

  • 非常感谢!我该怎么做才能运行 Excercise2() 而不是 Excercise1(),我怎样才能跳到那里?
【解决方案2】:

提供一个名为 Main 的静态方法,或者不要将其编译为 exe。

public static void Main()
{
}

【讨论】:

    【解决方案3】:

    由于错误状态,您需要一个静态 Main 方法。这将在您执行程序时调用。它是它的入口点。

    只需添加:

    public static void Main(){
        // Here you want to call your exercise functions
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      相关资源
      最近更新 更多