GD0202: Il parametro della firma delegata del segnale non è supportato
ID regola |
GD0202 |
Categoria |
Utilizzo |
Soluzione è distruttiva o non-distruttiva |
Distruttiva - Se il tipo del parametro viene cambiato Non-distruttiva - Se l'attributo |
Abilitato per predefinito |
Si |
Causa
Un tipo non supportato è specificato per un parametro di un delegato annotato con l'attributo [Signal] quando è previsto un tipo compatibile con Variant.
Descrizione della regola
Ogni parametro di un segnale deve essere compatibile con Variant affinché si possa convertire durante l'emissione del segnale e l'invocazione dei callback.
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);
Consultare la documentazione Segnali in C# per più informazioni su come dichiarare e utilizzare i segnali.
Come risolvere le violazioni
Per correggere una violazione di questa regola, cambiare il tipo del parametro in modo che sia compatibile con Variant o rimuovere l'attributo [Signal] dal delegato. Si noti che rimuovere l'attributo significherà che il segnale non sarà registrato.
Suggerimento
Se il segnale non deve interagire con Godot, si considerare l'utilizzo diretto degli eventi in C#. Gli eventi puri in C# permetto di utilizzare qualsiasi tipo di C# per i propri parametri.
Quando sopprimere gli avvertimenti
Non sopprimere un avviso da questa regola. I delegati dei segnali con parametri che non è possibile convertire genereranno errori in fase di esecuzione durante l'emissione del segnale o l'invocazione dei callback.