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 їх ігноруватиме, що призведе до помилок виконання.