是否可以在 C# Interactive 上使用 Immutable.Collections?
Is it possible to use Immutable.Collections on C# Interactive?
我在 Visual Studio 2019 上使用 C# Interactive window(即 REPL),并进行了最新更新。我想使用不可变集合,但无法让它们工作。 (我在编译的 C# 项目中使用它们没有问题)。
奇怪的是,如果我输入(进入 C# Interactive window):
using System.Collections.Immutable;
C# Interactive 接受这一点,暗示它可以看到命名空间。但是,如果我随后尝试使用它,例如:
var a = ImmutableList.Create<int>(1,2,3);
我收到错误消息:“名称 'ImmutableList' 在当前上下文中不存在。”如果我完全限定 ImmutableList 的名称,这没有什么区别。
可能我不了解哪个版本的 .NET C# Interactive 正在运行。我知道 Immutable.Collections 现在在 .NET Core 3 中是原生的,但也许 C# Interactive 不使用这个版本? (您如何 tell/specify C# Interactive 中的 .NET 版本?)。即便如此,它不抗议 using 指令似乎很奇怪。
您需要先引用 System.Collections.Immutable
程序集。为此,请使用:
#r "System.Collections.Immutable.dll"
现在您可以使用 System.Collections.Immutable
命名空间中的对象。
我在 Visual Studio 2019 上使用 C# Interactive window(即 REPL),并进行了最新更新。我想使用不可变集合,但无法让它们工作。 (我在编译的 C# 项目中使用它们没有问题)。
奇怪的是,如果我输入(进入 C# Interactive window):
using System.Collections.Immutable;
C# Interactive 接受这一点,暗示它可以看到命名空间。但是,如果我随后尝试使用它,例如:
var a = ImmutableList.Create<int>(1,2,3);
我收到错误消息:“名称 'ImmutableList' 在当前上下文中不存在。”如果我完全限定 ImmutableList 的名称,这没有什么区别。
可能我不了解哪个版本的 .NET C# Interactive 正在运行。我知道 Immutable.Collections 现在在 .NET Core 3 中是原生的,但也许 C# Interactive 不使用这个版本? (您如何 tell/specify C# Interactive 中的 .NET 版本?)。即便如此,它不抗议 using 指令似乎很奇怪。
您需要先引用 System.Collections.Immutable
程序集。为此,请使用:
#r "System.Collections.Immutable.dll"
现在您可以使用 System.Collections.Immutable
命名空间中的对象。