为什么ImmutableArray似乎不存在于Microsoft Immutable Collections NuGet包版本1.0.34中?
答案 0 :(得分:7)
ImmutableArray
。
正如您在version history中所看到的,1.1.20的发行说明提及"重新包含ImmutableArray< T>"
您可以在此announcement中找到.NET博客上1.0版本中不存在ImmutableArray的原因的解释。 (简而言之 - 当他们尝试使用该类型而不是常规数组时,Roslyn团队的性能受到了显着影响,负责该库的团队不确定如何解决这个问题,同时保持合理的API。)
您可以在新的NuGet包System.Collections.Immutable
下找到更新版本的库。
注意:根据System.Collections.Immutable
新版本中的source code,他们显然已经决定采用API命中 - 也就是说,对于单元化ImmutableArray
的某些操作会抛出一个令人惊讶NullReferenceException
。显然,ImmutableArray
永远不会使用new
进行实例化。 (而应使用ImmutableArray<T>.Empty
)
答案 1 :(得分:1)
public static class ImmutableArray
ImmutableArray
是静态,因此您无法实例化它。使用:
ImmutableArray.Create<T>(); // Creates an empty immutable array