6

为什么在 Microsoft Immutable Collections NuGet 包版本1.0.34中似乎没有ImmutableArray

在此处输入图像描述

4

2 回答 2

7

ImmutableArray不在您的库版本中。

正如您在版本历史中看到的,1.1.20 的发行说明提到“重新包含 ImmutableArray<T>”

您可以在此公告中找到 .NET 博客上的 1.0 版本中缺少 ImmutableArray 的解释。(简而言之 - 当 Roslyn 团队尝试使用该类型而不是常规数组时,他们的性能受到了显着影响,而负责该库​​的团队不知道如何解决这个问题,同时保持合理的 API。)

您将在其新的 NuGet 包下找到该库的较新版本,System.Collections.Immutable.

NB:根据新版本的源代码System.Collections.Immutable,他们显然已经决定接受 API 的打击——也就是说,在 unialized 上的一些操作ImmutableArray会抛出一个令人惊讶NullReferenceException的 s。显然,永远不ImmutableArray应该用. (应改为使用)newImmutableArray<T>.Empty

于 2015-03-26T08:32:05.423 回答
1

文档中:

public static class ImmutableArray

staticImmutableArray ,所以你不能实例化它。利用:

ImmutableArray.Create<T>(); // Creates an empty immutable array
于 2015-03-26T08:19:15.907 回答