Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
GD0301: The generic type argument must be a Variant compatible type¶
Regel-ID |
GD0301 |
Kategorie |
Verwendung |
Breaking- oder nicht-Breaking-Fix |
Breaking |
Standardmäßig aktiviert |
Ja |
Ursache¶
An unsupported type is specified for a generic type argument when a Variant-compatible type is expected.
Beschreibung der Regel¶
When a generic type parameter is annotated with the [MustBeVariant]
attribute,
the generic type is required to be a Variant-compatible type. For example,
the generic Godot.Collections.Array<T>
type only supports items of a type
that can be converted to 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>();
Wie man Verstöße behebt¶
To fix a violation of this rule, change the generic type argument to be a Variant-compatible type or use a different API that doesn't require the generic type argument to be a Variant-compatible type.
Wann Warnungen unterdrückt werden sollten¶
Do not suppress a warning from this rule. API that contains generic type arguments
annotated with the [MustBeVariant]
attribute usually has this requirement
because the values will be passed to the engine, if the type can't be marshalled
it will result in runtime errors.