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.

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