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