为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
烙印99 2022-01-09 14:58:43
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);    }}
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

在 Visual Studio 中创建新的控制台项目时Program.cs,会使用静态Main方法自动添加一个名为的文件。这是entry point您的应用程序。方法中的第一行是最先执行的行。


它看起来像这样:


namespace SomeNamespace

{

    class Program

    {

        static void Main(string[] args)

        {

             // By default this line will execute first

        }

    }

}

Microsoft Docs解释得更好:


该Main方法是 C# 应用程序的入口点。(库和服务不需要Main方法作为入口点。)当应用程序启动时,Main方法是第一个被调用的方法。


C# 程序中只能有一个入口点。如果您有多个具有Main方法的类,则必须使用 /main 编译器选项来编译程序,以指定将哪个 Main 方法用作入口点。


我猜你没有改变Program.Main,程序只是执行并且什么都不做。


我建议将您main方法的内容移动到Program.Main.


static void Main(string[] args)

{

    int yearq = 2015;

    bool result = Leap.IsLeapYear(yearq);

    Console.WriteLine(result);

}

但是,如果您确实需要使用Main方法指定多个类,则必须通过使用-main编译器选项告诉编译器将哪个方法用作入口点。


您还可以选择删除Program.cs和重命名您的mainto Main,但除非您有特殊需要,否则我宁愿使用默认行为。


查看完整回答
反对 回复 2022-01-09
?
RISEBY

TA贡献1856条经验 获得超5个赞

更新未来繁荣的问题,有趣的是,我通过添加以下内容解决了我自己的问题:


<IsPackable>false</IsPackable>

<GenerateProgramFile>false</GenerateProgramFile>

...到本教程网站PropertyGroup中的 .csproj 文件。阅读该页面,我不能说我完全理解它为什么解决了我的问题;因此,如果有人可以更好地解释答案,请不要回答这个问题。(它肯定与答案中其他地方提到的 -main 编译器选项有关。)



查看完整回答
反对 回复 2022-01-09
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信