GD0202: параметр підпису делегата сигналу не підтримується
Ідентифікатор правила |
GD0202 |
Категорія |
Використання |
Виправлення ламається або не ламається |
Порушення - якщо тип параметра змінено Нерозривний – якщо видалено атрибут |
Увімкнено за замовчуванням |
Да |
Причина
Непідтримуваний тип указано для параметра делегату, анотованого атрибутом [Signal], коли очікується Variant-compatible type.
Опис правила
Кожен параметр сигналу має бути сумісним з варіантом, щоб його можна було сортувати під час надсилання сигналу та виклику зворотних викликів.
class SomeType { }
// SomeType is not a valid parameter type because it doesn't derive from GodotObject,
// so it's not compatible with Variant.
public void InvalidSignalEventHandler(SomeType someType);
// System.Int32 is a valid type because it's compatible with Variant.
public void ValidSignalEventHandler(int someInt);
Перегляньте документацію C# signals, щоб дізнатися більше про те, як декларувати та використовувати сигнали.
Як усунути порушення
Щоб виправити порушення цього правила, змініть тип параметра на сумісний з варіантом або видаліть атрибут [Signal] з делегату. Зауважте, що видалення атрибута означатиме, що сигнал не зареєстровано.
Порада
Якщо сигналу не потрібно взаємодіяти з Godot, розгляньте можливість безпосереднього використання C# події. Чисті події C# дозволяють використовувати будь-який тип C# для його параметрів.
Коли придушувати попередження
Не приховуйте попередження з цього правила. Делегати сигналу з параметрами, які не можна маршалювати, призведуть до помилок виконання під час надсилання сигналу або виклику зворотних викликів.