类型必须为非空值

时间:2018-07-18 19:28:49

标签: c# unity3d concurrentdictionary

我正在尝试创建一个Dictionary类型的NativeArray,但出现此错误:

  

通用类型或方法“ Unity.Collections.NativeArray”中的类型Realtime.Messaging.Internal.ConcurrentDictionary<string,Chunk>' must be a non-nullable value type in order to use it as type parameter T'

NativeArray<ConcurrentDictionary<string, Chunk>> dictionary = new NativeArray<ConcurrentDictionary<string, Chunk>>(8, Allocator.TempJob);

我是Unity和C#的新手,以前可能曾问过这个问题,但我一直在寻找修复程序,找不到任何东西。

我该如何解决?

1 个答案:

答案 0 :(得分:2)

答案是在您收到的错误消息中: ..必须是非空值类型... ConcurrentDictionary是引用类型,似乎NativeArray具有要接受的类型参数约束仅结构,约束类型如下:

class Foo<T> where T:struct{}

这意味着您只能创建值类型(结构)的NativeArray:int,byte,char,... etc或您自己的结构...