ReSharper 2026.1 Help

代码检查:共享静态类型参数需要非托管约束

此检查会报告在 SharedStatic<T> 中使用 T 但该类型不是非托管类型的情况。

SharedStatic<T> 设计用于非托管数据。 如果类型实参包含如 objectstring 这样的托管字段、类引用或其他托管成员,此检查将在 GetOrCreate 调用处发出警告。

示例

在本例中, SharedValue 结构体包含一个 object 字段,因此它是托管类型。 不能将其用作 SharedStatic<T> 的类型实参。

using Unity.Burst; public struct SharedValue { public int count; public object tag; } public class Example { private void Create() { // Reported: SharedValue is not unmanaged var value = SharedStatic<SharedValue>.GetOrCreate<int>(); } }
using Unity.Burst; public struct SharedValue { public int count; public double tag; } public class Example { private void Create() { // Correct: SharedValue is fully unmanaged var value = SharedStatic<SharedValue>.GetOrCreate<int>(); } }

快速修复

此检查不提供专用的快速修复。 请通过使 SharedStatic<T> 类型实参完全为非托管类型来手动修复。

2026年 5月 8日