将结果输出到命令行时出现问题。

isALeapYear[x_Integer]:= 

If[(Mod[x,4]==0 && !Mod[x,100]==0) || (Mod[x,4]==0 && Mod[x,400]==0),ToString[x] <>" is a leap year", ToString[x] <> " is NOT a leap year"]

下面是我在努力自学 C# 时尝试解决来自 Exercism.com 的练习“Leap”。该网站建议来这里寻求帮助。我已经弄清楚了 Mathematica 中的逻辑(上图),但是当我dotnet run在终端中运行时,我的小 C# 程序没有返回任何内容。任何建议表示赞赏。


using System;


public static class Leap

{

    public static bool IsLeapYear(int year)

    {

        if (year % 4 == 0 && year % 100 == 0) 

        {

            return true;    

        }

        else

        {

            return false;

        }

    }


    public static void main()

    {

        int yearq = 2015;

        bool result = IsLeapYear(yearq);

        Console.WriteLine(result);

    }

}


烙印99
浏览 146回答 2
2回答

互换的青春

在 Visual Studio 中创建新的控制台项目时Program.cs,会使用静态Main方法自动添加一个名为的文件。这是entry point您的应用程序。方法中的第一行是最先执行的行。它看起来像这样:namespace SomeNamespace{&nbsp; &nbsp; class Program&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; static void Main(string[] args)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// By default this line will execute first&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}Microsoft Docs解释得更好:该Main方法是 C# 应用程序的入口点。(库和服务不需要Main方法作为入口点。)当应用程序启动时,Main方法是第一个被调用的方法。C# 程序中只能有一个入口点。如果您有多个具有Main方法的类,则必须使用 /main 编译器选项来编译程序,以指定将哪个 Main 方法用作入口点。我猜你没有改变Program.Main,程序只是执行并且什么都不做。我建议将您main方法的内容移动到Program.Main.static void Main(string[] args){&nbsp; &nbsp; int yearq = 2015;&nbsp; &nbsp; bool result = Leap.IsLeapYear(yearq);&nbsp; &nbsp; Console.WriteLine(result);}但是,如果您确实需要使用Main方法指定多个类,则必须通过使用-main编译器选项告诉编译器将哪个方法用作入口点。您还可以选择删除Program.cs和重命名您的mainto Main,但除非您有特殊需要,否则我宁愿使用默认行为。

RISEBY

更新未来繁荣的问题,有趣的是,我通过添加以下内容解决了我自己的问题:<IsPackable>false</IsPackable><GenerateProgramFile>false</GenerateProgramFile>...到本教程网站PropertyGroup中的 .csproj 文件。阅读该页面,我不能说我完全理解它为什么解决了我的问题;因此,如果有人可以更好地解释答案,请不要回答这个问题。(它肯定与答案中其他地方提到的 -main 编译器选项有关。)
打开App,查看更多内容
随时随地看视频慕课网APP