GD0203:訊號委派簽章必須回傳 void
規則 ID |
GD0203 |
分類 |
用法 |
修正是否會破壞相容性 |
破壞性變更 - 若修改回傳型別 非破壞性變更 - 若移除 |
預設啟用 |
是 |
原因
被 [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# 型別作為參數。
什麼時候應該忽略警告
請勿忽略此規則的警告。若訊號委派具有回傳值,將導致不可預期的執行階段錯誤。