GD0203: підпис делегата сигналу має повертатися недійсним
Ідентифікатор правила |
GD0203 |
Категорія |
Використання |
Виправлення ламається або не ламається |
Розрив – якщо тип повернення змінено Нерозривний – якщо видалено атрибут |
Увімкнено за замовчуванням |
Да |
Причина
Делегат, анотований атрибутом [Signal], має тип повернення, коли очікувався void.
Опис правила
Кожен сигнал має повертати пустоту. Для кожного сигналу може бути зареєстровано кілька зворотних викликів. Якби зворотні виклики сигналів могли щось повернути, було б неможливо визначити, яке з повернених значень використовувати.
// This signal delegate is invalid because it doesn't return void.
public int InvalidSignalEventHandler();
// This signal delegate is valid because it returns void.
public void ValidSignalEventHandler();
Перегляньте документацію C# signals, щоб дізнатися більше про те, як декларувати та використовувати сигнали.
Як усунути порушення
Щоб виправити порушення цього правила, змініть делегат на повернення void або видаліть атрибут [Signal] з делегату. Зауважте, що видалення атрибута означатиме, що сигнал не зареєстровано.
Порада
Якщо сигналу не потрібно взаємодіяти з Godot, розгляньте можливість безпосереднього використання C# події. Чисті події C# дозволяють використовувати будь-який тип C# для його параметрів.
Коли придушувати попередження
Не приховуйте попередження з цього правила. Делегати сигналу, які повертають щось, призведуть до неочікуваних помилок виконання.