簡體   English   中英

C# 7.3 中不提供功能“頂級語句”。 請使用 9.0 或更高版本的語言。 戈多問題

[英]Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater. Godot Question

我正在嘗試學習如何使用 Godot,因為我發現它比 Unity 更容易學習,並且一直在關注他們的官方文檔頁面上的教程,我設法進入了“准備碰撞”部分,並創建了Hit信號,然而,當我將節點鏈接在一起時,它創建了 function,我編寫了它說要放入其中的代碼:

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

但是當我運行它時,它給出了這個錯誤:

Feature 'top-level statements' is not available in C# 7.3. Please use language version 9.0 or greater.

我認為這意味着我必須更新 C#,我認為這不是什么大問題,我嘗試通過dotnet-sdk更新它,但我不確定它是什么或它是如何工作的,並且在 Godot 中找不到任何其他更新它的方法。 如果這是一個愚蠢的問題,我深表歉意,我對 Godot 很陌生。 提前感謝您的幫助。

我不完全確定這是否是產生頂級語句錯誤的代碼片段。 頂級語句錯誤通常來自Program.cs或包含Main方法的代碼文件。

頂級語句是隨 C# 9 引入的: MSDN - 頂級語句

為了在您的項目中啟用 C# 9.0,您需要編輯.csproj文件並添加以下內容:

<PropertyGroup>
   <LangVersion>9.0</LangVersion>
</PropertyGroup>

或者,您可以使用以下配置來定位最新的 C# 版本,當前為 10.0

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

雖然 Godot 完全支持 C# 語言,但 IDE 的集成並不是最好的(好吧,集成不好)。

我(...)創建了 Hit 信號,但是,當我將節點鏈接在一起時,它創建了 function,我編寫了它說要放入其中的代碼

問題是它在錯誤的地方創建了它。 Godot 在文件末尾添加了處理程序方法。 這是不正確的。 它應該是 class 中與文件共享名稱的方法。 將方法移到那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM