GD0301:泛型型別參數必須為 Variant 相容型別

規則 ID

GD0301

分類

用法

修正是否會破壞相容性

破壞性變更

預設啟用

原因

指定的泛型型別參數不是預期的 Variant 相容型別

規則說明

當泛型型別參數被標註為 [MustBeVariant] 屬性時,該型別必須是 Variant 相容型別。例如,泛型 Godot.Collections.Array<T> 只支援可轉換為 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>();

修正方式

要修正此規則的違規情形,請將泛型型別參數改為 Variant 相容型別,或改用不要求 Variant 相容型別的 API。

什麼時候應該忽略警告

請勿忽略此規則的警告。標註 [MustBeVariant] 屬性的泛型參數通常會傳遞至引擎,若型別無法被正確處理,將導致執行階段錯誤。