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...
GD0203: Делегат сигнала должен возвращать void
Идентификатор правила |
GD0203 |
Категория |
Использование |
Исправление может быть как ломающим, так и не ломающим |
Нарушение - если тип возвращаемого значения изменен Неразрывный — если атрибут |
Включено по умолчанию |
Да |
Причина
Делегат, аннотированный атрибутом [Signal], имеет возвращаемый тип, хотя ожидался void.
Описание правила
Каждый сигнал должен возвращать 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# для их параметров.
Когда следует подавлять предупреждения
Не подавляйте предупреждение из этого правила. Делегаты сигналов, возвращающие что-либо, приведут к непредвиденным ошибкам во время выполнения.