Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

GD0111:匯出的工具按鈕必須是以運算式為主體的屬性

規則 ID

GD0111

分類

用法

修正是否會破壞相容性

非破壞性

預設啟用

原因

某個屬性被標註為 [ExportToolButton],但它不是 expression-bodied property

規則說明

當重新載入 .NET 程式集時,Godot 會嘗試序列化匯出的成員以保留其值。若某個欄位,或是具有支援欄位的屬性,用來儲存 Callable,可能會阻止該程式集被卸載。

以運算式為主體的屬性沒有支援欄位,也不會儲存該 Callable,因此 Godot 不會嘗試序列化它,從而有助於成功重新載入 .NET 程式集。

[ExportToolButton("Click me!")]
public Callable ValidClickMeButton => Callable.From(ClickMe);

// Invalid because the Callable will be stored in the property's backing field.
[ExportToolButton("Click me!")]
public Callable InvalidClickMeButton { get; } = Callable.From(ClickMe);

修正方式

要修正此違規,請將該屬性的實作改為 expression-bodied property

什麼時候應該忽略警告

請勿忽略此規則的警告。Callable 實例可能會阻止 .NET 程式集卸載。