Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 没有可执行代码的顶级程序无法编译_C#_.net 5_C# 9.0 - Fatal编程技术网

C# 没有可执行代码的顶级程序无法编译

C# 没有可执行代码的顶级程序无法编译,c#,.net-5,c#-9.0,C#,.net 5,C# 9.0,我有一个针对net5的控制台应用程序,该应用程序中唯一的代码行是 System.Console.WriteLine(); 它按预期工作,但当我删除该行时,会出现一个编译错误,指出缺少一个入口点。这就是错误: 我的问题是为什么编译器的行为会有所不同。在这种情况下,为什么编译器对待顶级程序与存在静态“Main”方法的非顶级程序不同 语义 如果任何顶级语句出现在程序的任何编译单元中,其含义就好像它们组合在全局命名空间中程序类的主方法的块体中,如下所示: 您可以看到,您的语句是在隐式Main()方法中

我有一个针对net5的控制台应用程序,该应用程序中唯一的代码行是

System.Console.WriteLine();
它按预期工作,但当我删除该行时,会出现一个编译错误,指出缺少一个入口点。这就是错误:

我的问题是为什么编译器的行为会有所不同。在这种情况下,为什么编译器对待顶级程序与存在静态“Main”方法的非顶级程序不同

语义
如果任何顶级语句出现在程序的任何编译单元中,其含义就好像它们组合在全局命名空间中程序类的主方法的块体中,如下所示:

您可以看到,您的语句是在隐式
Main()
方法中编译的。但要使用此
Main()
方法,必须至少有一个顶级语句。仅当存在顶级语句时,才会创建此隐式语句。您建议的替代方案将导致始终生成隐式
Main()

您看到的错误显然与此有关:如果没有任何代码行,则不会生成隐式
Main()
方法,因此会返回一个缺少入口点的错误