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: Экспортированное свойство является явной реализацией интерфейса
Идентификатор правила |
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 будет их игнорировать, что приведёт к ошибкам во время выполнения.