“顶级语句”功能在 C# 7.3 中不可用。请使用 9.0 或更高版本的语言。戈多问题

Lor*_*ass 4 c# collision godot

我正在尝试学习如何使用 Godot,因为我发现它比 Unity 更容易学习,并且一直在遵循其官方文档页面上的教程,我已经成功进入 “准备碰撞”部分,并创建了然而Hit,当我将节点链接在一起时,它创建了该信号,并且我编写了它所说的要放入其中的代码:

public void OnPlayerBodyEntered(PhysicsBody2D body)
{
    Hide(); // Player disappears after being hit.
    EmitSignal("Hit");
    GetNode<CollisionShape2D>("CollisionShape2D").SetDeferred("disabled", true);
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它给出了这个错误:

Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater.
Run Code Online (Sandbox Code Playgroud)

我认为这意味着我必须更新 C#,我认为这不是一个大问题,我尝试通过这个dotnet-sdk东西更新它,但我不太确定它是什么或它是如何工作的,并且找不到在 Godot 中更新它的任何其他方式。如果这是一个愚蠢的问题,我很抱歉,我对戈多很陌生。预先感谢您的任何帮助。

Cod*_*ack 6

我不完全确定这是否是产生顶级语句错误的代码片段。顶级语句错误通常来自(通常Program.cs)或包含该方法的代码文件Main

顶级语句是随 C# 9 引入的: MSDN - 顶级语句

为了在您的项目中启用 C# 9.0,您需要编辑.csproj文件并添加以下内容:

<PropertyGroup>
   <LangVersion>9.0</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用以下配置来定位最新的 C# 版本,当前为 10.0

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)