我正在使用Visual Studio 2019上的C#交互式窗口(即REPL(,并带有最新更新。我想使用不可变集合,但无法让它们工作。 (我在编译的 C# 项目中使用它们没有问题(。
奇怪的是,如果我输入(进入 C# 交互窗口(:
using System.Collections.Immutable;
C# 交互接受这一点,这意味着它可以看到命名空间。但是,如果我随后尝试使用它,例如:
var a = ImmutableList.Create<int>(1,2,3);
我收到错误消息:"名称'不可变列表'在当前上下文中不存在。 如果我完全限定不可变列表的名称,则没有区别。
可能我不明白哪个版本的.NET C# Interactive正在反对。 我知道 Immutable.Collections 现在是 .NET Core 3 中的原生版本,但也许 C# Interactive 不使用此版本?(如何在 C# 交互式中分辨/指定 .NET 版本? 即便如此,它没有抗议使用指令似乎很奇怪。
您需要先引用System.Collections.Immutable
程序集。为此,请使用以下命令:
#r "System.Collections.Immutable.dll"
现在,您可以在System.Collections.Immutable
命名空间中使用该对象。