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: O parâmetro da assinatura do delegate do sinal não é suportado
ID da Regra |
GD0202 |
Categoria |
Uso |
A correção altera a compatibilidade (breaking) ou não altera (non-breaking) |
Altera a compatibilidade (breaking) - Se o tipo do parâmetro for alterado Não altera a compatibilidade (non-breaking) - Se o atributo |
Ativado por padrão |
Sim |
Causa
Um tipo não suportado foi especificado para um parâmetro de um delegate anotado com o atributo [Signal] quando um tipo compatível com Variant era esperado.
Descrição da regra
Todo parâmetro de sinal deve ser compatível com Variant para que possa passar pelo marshalling ao emitir o sinal e invocar os callbacks.
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);
Dê uma olhada na documentação de sinais em C# para mais informações sobre como declarar e usar sinais.
Como corrigir violações
Para corrigir uma violação desta regra, altere o tipo do parâmetro para ser compatível com Variant ou remova o atributo [Signal] do delegate. Note que remover o atributo significará que o sinal não será registrado.
Dica
Se o sinal não precisar interagir com o Godot, considere usar eventos C# diretamente. Eventos C# puros permitem que você use qualquer tipo C# em seus parâmetros.
Quando suprimir avisos
Não suprima um aviso desta regra. Delegates de sinal com parâmetros que não podem passar por marshalling resultarão em erros em tempo de execução ao emitir o sinal ou invocar os callbacks.