错误消息“ CS5001程序不包含适用于入口点的静态'Main'方法”,具有多个类

时间:2018-06-25 07:03:55

标签: c# compiler-errors

这很重要,目前我有2个类(计划添加多个类),当我尝试从这两个类中调用函数时出现此错误。相同的名称空间。我仔细检查了一下,然后查看“属性”标签,看它是否已设置为可编译。

using System;

namespace Game
{
public class SecondSet
{

    public void SituationSecondOne()
    {
        Console.WriteLine(" ");
        Console.WriteLine("Choices:");
        Console.WriteLine("1: First");
        Console.WriteLine("2: Second");
        Console.WriteLine(" ");

        int ChoiceOne = Convert.ToInt32(Console.ReadLine());

        switch (ChoiceOne)
        {
            case (1):
                Console.WriteLine("TEST2");
                break;
            case (2):
                Console.WriteLine("TEST2");
                break;
            case (1337):
                Console.WriteLine(" ");
                Console.WriteLine("Thank you for playing");
                Console.ReadLine();
                Environment.Exit(1);
                break;
            default:
                Console.WriteLine(" ");
                Console.WriteLine("Now, let's try that again ... (¬_¬)");
                SituationSecondOne();
                break;
        }
    }
 }
}

现在,当我从第二个调用第一个函数时,没有任何错误。我需要哪种类型的Main()方法? (我还尝试添加原始的 public void Main(string [] args),添加后,我无法再将 public 添加到要调用的函数中了)头等舱

注意:我将此添加到第一堂课

SecondSet s2 = new SecondSet();

并且上面的代码很好用,但是我遇到了编译错误。阀门请修复:/

6 个答案:

答案 0 :(得分:1)

当您将Main方法更改为异步方法而忘记将void更改为Task时,也会收到此错误。

答案 1 :(得分:1)

在 VS2017 中运行我的代码时发生了这种情况。 在 VS2019 中打开修复了错误。

async Task Main() 入口点需要 C# 7.1 或更高版本,因此您可能没有安装所需的版本。

答案 2 :(得分:0)

可能是您的程序不包含Main,它是控制台应用程序的入口点,所以请替换为this

 class Hello 
{

   public void SituationSecondOne()
{
    Console.WriteLine(" ");
    Console.WriteLine("Choices:");
    Console.WriteLine("1: First");
    Console.WriteLine("2: Second");
    Console.WriteLine(" ");

    int ChoiceOne = Convert.ToInt32(Console.ReadLine());

    switch (ChoiceOne)
    {
        case (1):
            Console.WriteLine("TEST2");
            break;
        case (2):
            Console.WriteLine("TEST2");
            break;
        case (1337):
            Console.WriteLine(" ");
            Console.WriteLine("Thank you for playing");
            Console.ReadLine();
            Environment.Exit(1);
            break;
        default:
            Console.WriteLine(" ");
            Console.WriteLine("Now, let's try that again ... (¬_¬)");
            SituationSecondOne();
            break;
    }
}
    static void Main() 
    {
        SecondSet s2 = new SecondSet();
        Console.ReadKey();
    }
}

答案 3 :(得分:0)

您的意思不清楚,但是 我也在研究这个问题,在我看来,解决方案太简单了。我向解决方案添加了一个新的空项目。新添加的项目将自动设置为控制台应用程序。但是由于添加的项目是一个“空”项目,因此该新项目中不存在Program.cs。 (如预期)

我要做的就是将项目属性的输出类型更改为“类库”

将“项目”>“属性”下的“输出类型”更改为“类库”的类型。默认情况下,此设置可能已设置为“控制台应用程序”。

   static void Main()
   {
   }

答案 4 :(得分:0)

请按照这种方式操作,并解决您的错误。

public  class Program{
     static async Task Main()
             { }
 }

答案 5 :(得分:0)

对我来说,我设置的启动项目具有输出类型(控制台应用程序) 无论如何,这是一个错误的项目,所以我将顶层设置为启动项目。

还将其他层更改为输出类型(类库)