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.

GD0301: L'argomento di tipo generico deve essere un tipo compatibile con Variant

ID regola

GD0301

Categoria

Utilizzo

Soluzione è distruttiva o non-distruttiva

Distruttiva

Abilitato per predefinito

Si

Causa

È specificato un tipo non supportato per un argomento di tipo generico quando è previsto un tipo compatibile con Variant.

Descrizione della regola

Quando un parametro di tipo generico è annotato con l'attributo [MustBeVariant], il tipo generico deve essere compatibile con Variant. Ad esempio, il tipo generico Godot.Collections.Array<T> supporta solo elementi di un tipo che si può convertire in Variant.

class SomeType { }

// SomeType is not a valid type because it doesn't derive from GodotObject,
// so it's not compatible with Variant.
var invalidArray = new Godot.Collections.Array<SomeType>();

// System.Int32 is a valid type because it's compatible with Variant.
var validArray = new Godot.Collections.Array<int>();

Come risolvere le violazioni

Per correggere una violazione di questa regola, modificare l'argomento di tipo generico in modo che sia un tipo compatibile con Variant oppure utilizzare un'API diversa che non richieda che l'argomento di tipo generico sia un tipo compatibile con Variant.

Quando sopprimere gli avvertimenti

Non sopprimere un avviso da questa regola. Le API che contengono argomenti di tipo generico annotati con l'attributo [MustBeVariant] solitamente hanno questo requisito perché i valori saranno passati al motore; se non è possibile convertire il tipo si causeranno errori in fase di esecuzione.