GD0203:訊號委派簽章必須回傳 void

規則 ID

GD0203

分類

用法

修正是否會破壞相容性

破壞性變更 - 若修改回傳型別

非破壞性變更 - 若移除 [Signal] 屬性

預設啟用

原因

[Signal] 屬性標註的委派有回傳型別,預期應為 void。

規則說明

每個訊號都必須回傳 void。每個訊號可能有多個回呼,若允許回傳值,將無法決定該採用哪個回傳值。

// This signal delegate is invalid because it doesn't return void.
public int InvalidSignalEventHandler();

// This signal delegate is valid because it returns void.
public void ValidSignalEventHandler();

請參閱 C# 訊號 文件,瞭解如何宣告與使用訊號。

修正方式

要修正此規則的違規情形,請將委派修改為回傳 void,或從委派移除 [Signal] 屬性。(注意:移除屬性後訊號將不會註冊)。

小訣竅

若該訊號不需與 Godot 互動,建議直接使用 C# 事件。純 C# 事件允許你使用任何 C# 型別作為參數。

什麼時候應該忽略警告

請勿忽略此規則的警告。若訊號委派具有回傳值,將導致不可預期的執行階段錯誤。