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