GD0203:信号的委托签名必须返回 void
规则 ID |
GD0203 |
类别 |
用法 |
修复是破坏性的还是非破坏性的 |
破坏性的 - 如果返回类型发生改变 非破坏性的 - 如果 |
默认启用 |
是 |
原因
当使用 [Signal]
属性注解的委托期望为 [Signal]
时却具有返回类型。
规则说明
每个信号必须返回 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# 类型作为其参数。
何时抑制警告
不要抑制该规则的警告。返回一些内容的信号委托将导致意外的运行时错误。