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...
GD0106:导出的属性是一个显式接口实现
规则 ID |
GD0106 |
类别 |
用法 |
修复是破坏性的还是非破坏性的 |
非破坏性的 |
默认启用 |
是 |
原因
显式接口属性实现使用 [Export]
属性进行注解。显式实现接口的属性无法被导出。
规则说明
Godot 不允许导出显式接口属性实现。当显式实现接口成员时,该成员将被隐藏,除非先将类型转换为接口,否则使用者无法访问它们。显式实现的成员还可以与类型中的其他成员共享相同的名称,因此可能会与其他导出的成员产生命名冲突。
public interface MyInterface
{
public int MyProperty { get; set; }
}
public class MyNode1 : Node, MyInterface
{
// The property can be exported because it implements the interface implicitly.
[Export]
public int MyProperty { get; set; }
}
public class MyNode2 : Node, MyInterface
{
// The property can't be exported because it implements the interface explicitly.
[Export]
int MyInterface.MyProperty { get; set; }
}
如何解决违规情况
要修复违反该规则的情况,请隐式实现接口或移除 [Export]
属性。
何时抑制警告
不要抑制该规则的警告。显式接口属性实现无法被导出,因此它们将被 Godot 忽略,从而导致运行时错误。