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 程式集卸載。