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.
Checking the stable version of the documentation...
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# 类型作为其参数。
何时抑制警告
不要抑制该规则的警告。返回一些内容的信号委托将导致意外的运行时错误。