gpt4 book ai didi

c# - 没有可执行代码的顶层程序不编译

转载 作者:行者123 更新时间:2023-12-03 23:33:34 25 4
gpt4 key购买 nike

我有一个面向 net5 的控制台应用程序,应用程序中唯一的一行代码是这样的

System.Console.WriteLine();
它按预期工作,但是当我删除该行时,出现编译错误,指出缺少入口点。这是错误: https://docs.microsoft.com/en-us/dotnet/csharp/misc/cs5001
我的问题是为什么编译器行为存在差异。在这种情况下,为什么编译器将顶级程序与非顶级程序不同地对待,后者将出现静态“Main”方法?

最佳答案

来自 msdn

Semantics
If any top-level statements are present in any compilation unit of the program, the meaning is as if they were combined in the block body of a Main method of a Program class in the global namespace, as follows:


所以你看,你的语句被编译在一个隐含的 Main() 中。方法。但要有这个 Main()方法,你必须至少有一个顶级语句。仅当存在顶级语句时才会创建此隐式语句。您建议的替代方案会导致隐含的 Main()总是被生成。
您看到的错误显然与此相关:没有任何代码行,没有隐式 Main()生成方法,因此返回缺少入口点的错误。

关于c# - 没有可执行代码的顶层程序不编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65469366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com