为什么 Main 不运行?[复制]

Why isnt the Main running? [duplicate]

提问人:minimini 提问时间:12/21/2022 最后编辑:minimini 更新时间:12/21/2022 访问量:196

问:

我做错了什么,让它不起作用? 程序没有完成,但我需要知道我在“静态空隙主”上做错了什么 我已经看了几个小时,试图找出谷歌的问题,但我真的无法理解。可能整个代码都是错误的,但我只想回答主要问题,其余的我稍后会看。

Main 未运行:这是一张错误图片

另一个用于更多代码,另一个用于更多代码

  static void Main(string[] args)
{
    string[] ämnen = { "Matematik", "Svenska", "Engelska", "Historia", "Fysik" };
    int[] poäng = new int[5];
    char[] betyg = new char[6];
    Laspoang(ämnen, poäng);
    Af(ämnen, poäng, betyg);
    SkrivUtBetyg(ämnen, poäng, betyg);

    
    bool avsluta = false;
    while (!avsluta)

        Console.Write("[A]skriv betyg i A-F\n");
        Console.Write("[B]statistik\n");
        Console.Write("[C]skriv ut betyg\n");
        Console.Write("[D]avsluta\n");
        Console.WriteLine("\nDitt val: ");

        char menyVal;

        menyVal = Console.ReadLine()[0];

    switch (menyVal)

    {

        case 'a':
        case 'A':

            Af(ämnen, poäng, betyg);

            break;



        case 'b':
        case 'B':

            stat(ämnen, poäng, betyg);
            break;

        case 'c':
        case 'C':
            //ej klar

            break;

        case 'd':
        case 'D':

            Console.WriteLine("Hejdå");

            avsluta = true;

            break;

    }   }        
    static void Laspoang(string[] ämnen, int[] poäng)
    {
        int poängen;
        for (int i = 0; i < ämnen.Length; i++)
        {
            Console.WriteLine("Mata in poängen mellan 0-100 för " + ämnen[i] + ": ");
            poängen = Convert.ToInt32(Console.ReadLine());
            poäng[i] = poängen;
        }
    }
    static void Af(string[] ämnen, int[] poäng, char[] betyg)
    {
        for (int i = 0; i < ämnen.Length; i++)
        {
            if (poäng[i] > 90 && poäng[i] <= 100)
                betyg[i] = 'A';
            else if (poäng[i] > 80)
                betyg[i] = 'B';
            else if (poäng[i] > 70)
                betyg[i] = 'C';
            else if (poäng[i] > 60)
                betyg[i] = 'D';
            else if (poäng[i] >= 50)
                betyg[i] = 'E';
            else if (poäng[i] >= 0)
                betyg[i] = 'F';
            else
                betyg[i] = '!';
            Console.WriteLine(ämnen[i] + "= " + betyg[i]);
        }
    }
    static void stat(string[] ämnen, int[] poäng, char[] betyg)
    {
        int betyga = 0;
        int betygb = 0;
        int betygc = 0;
        int betygd = 0;
        int betyge = 0;
        int betygf = 0;
        int poängtot = 0;

        for (int i = 0; i < poäng.Length; i++)
        {
            if (poäng[i] > 90 && poäng[i] <= 100)
                betyga++;
            else if (poäng[i] > 80)
                betygb++;
            else if (poäng[i] > 70)
                betygc++;
            else if (poäng[i] > 60)
                betygd++;
            else if (poäng[i] >= 50)
                betyge++;
            else if (poäng[i] >= 0)
                betygf++;
            else
                betyg[i] = '!';

        }
        Console.WriteLine("antal A: " + betyga);
        Console.WriteLine("antal B: " + betygb);
        Console.WriteLine("antal C: " + betygc);
        Console.WriteLine("antal D: " + betygd);
        Console.WriteLine("antal E: " + betyge);
        Console.WriteLine("antal F: " + betygf);

        for (int i = 0; i < poäng.Length; i++)
        {
            poängtot = poängtot + poäng[i];
        }
        Console.WriteLine("totala poäng: " + poängtot);
    }
    static void SkrivUtBetyg(string[] ämnen, int[] poäng, char[] betyg)
{

}     


    
C# 方法 static program-entry-point void

评论

2赞 Peter 12/21/2022
嗨,@minmini,Welceome 到 StackOverFlow。这里有很多人想帮助你。为此,请提供您遇到问题的代码。这样,我们都在同一起跑线上,帮助您会容易得多。
0赞 minimini 12/21/2022
我什至无法在我的帖子中写下代码,我已经尝试了很多次,但无法正确,希望有可能在图片中看到问题,对不起......
0赞 Klaus Gütter 12/21/2022
看这里: learn.microsoft.com/en-us/dotnet/csharp/fundamentals/...
1赞 Kalves 12/21/2022
将代码放在类中。例:Programpublic class Program { /* your code here */ }

答:

0赞 Peter 12/21/2022 #1

简短的回答:你需要把它放在一个标签里。Program

试一试

using System;

class Program
{
    static void Main(string[] args)
    {
        string[] ämnen = {"Matematik", "Svenska", "Engelska", "Historia", "Fysik"};
        int[] poäng = new int[5];
        char[] betyg = new char[6];
        Laspoang(ämnen, poäng);
        Af(ämnen, poäng, betyg);
        SkrivUtBetyg(ämnen, poäng, betyg);
        bool avsluta = false;
        while (!avsluta)
            Console.Write("[A]skriv betyg i A-F\n");
        Console.Write("[B]statistik\n");
        Console.Write("[C]skriv ut betyg\n");
        Console.Write("[D]avsluta\n");
        Console.WriteLine("\nDitt val: ");
        char menyVal;
        menyVal = Console.ReadLine()[0];
        switch (menyVal)
        {
            case 'a':
            case 'A':
                Af(ämnen, poäng, betyg);
                break;
            case 'b':
            case 'B':
                stat(ämnen, poäng, betyg);
                break;
            case 'c':
            case 'C':
                //ej klar
                break;
            case 'd':
            case 'D':
                Console.WriteLine("Hejdå");
                avsluta = true;
                break;
        }
    }

    static void Laspoang(string[] ämnen, int[] poäng)
    {
        int poängen;
        for (int i = 0; i < ämnen.Length; i++)
        {
            Console.WriteLine("Mata in poängen mellan 0-100 för " + ämnen[i] + ": ");
            poängen = Convert.ToInt32(Console.ReadLine());
            poäng[i] = poängen;
        }
    }

    static void Af(string[] ämnen, int[] poäng, char[] betyg)
    {
        for (int i = 0; i < ämnen.Length; i++)
        {
            if (poäng[i] > 90 && poäng[i] <= 100)
                betyg[i] = 'A';
            else if (poäng[i] > 80)
                betyg[i] = 'B';
            else if (poäng[i] > 70)
                betyg[i] = 'C';
            else if (poäng[i] > 60)
                betyg[i] = 'D';
            else if (poäng[i] >= 50)
                betyg[i] = 'E';
            else if (poäng[i] >= 0)
                betyg[i] = 'F';
            else
                betyg[i] = '!';
            Console.WriteLine(ämnen[i] + "= " + betyg[i]);
        }
    }

    static void stat(string[] ämnen, int[] poäng, char[] betyg)
    {
        int betyga = 0;
        int betygb = 0;
        int betygc = 0;
        int betygd = 0;
        int betyge = 0;
        int betygf = 0;
        int poängtot = 0;
        for (int i = 0; i < poäng.Length; i++)
        {
            if (poäng[i] > 90 && poäng[i] <= 100)
                betyga++;
            else if (poäng[i] > 80)
                betygb++;
            else if (poäng[i] > 70)
                betygc++;
            else if (poäng[i] > 60)
                betygd++;
            else if (poäng[i] >= 50)
                betyge++;
            else if (poäng[i] >= 0)
                betygf++;
            else
                betyg[i] = '!';
        }

        Console.WriteLine("antal A: " + betyga);
        Console.WriteLine("antal B: " + betygb);
        Console.WriteLine("antal C: " + betygc);
        Console.WriteLine("antal D: " + betygd);
        Console.WriteLine("antal E: " + betyge);
        Console.WriteLine("antal F: " + betygf);
        for (int i = 0; i < poäng.Length; i++)
        {
            poängtot = poängtot + poäng[i];
        }

        Console.WriteLine("totala poäng: " + poängtot);
    }

    static void SkrivUtBetyg(string[] ämnen, int[] poäng, char[] betyg)
    {
    }
}

评论

2赞 K. A. 12/21/2022
public在 main 方法中,(for ) 不是必需的。;)public static void Main(string[] args)
1赞 Rufus L 12/21/2022
这是不准确的 - 该方法不必是(它也不包含)。Mainpublicclass
0赞 Peter 12/21/2022
这取决于编译器吗?如果编译器/框架是 4.5.6,那么它需要有最新的 .net core,那么,不,它不需要。真public
0赞 Peter 12/21/2022
尝试在 dotnetfiddle 中使用和不使用 public 运行相同的代码
0赞 madreflection 12/21/2022
Rufus L 所说的话自 .NET 首次发布以来一直是正确的。它在编译器或运行时版本之间没有变化,或者类似的东西。