6

在 C# 交互式(作为 Visual Studio 2019 的一部分或独立)中,我想使用 C# 编写类似这样的代码:

var s = "abcdef";
var s1 = s[2..4];

这给出了以下消息:

(1,12):错误 CS0518:未定义或导入预定义类型“System.Range”

有没有办法修改例如 csi.exe.config 或其他方式以支持 C# 8.0 ?

4

2 回答 2

13

2020-11-25 更新

它在 Visual Studio 16.8.2 中工作。

只需输入#reset core即可切换到 .NET Core。


2020-07-14 更新

根据https://github.com/dotnet/roslyn/pull/45046,它可能会在下一版本的 Visual Studio 2019 中工作。

向命令添加一个新选项#reset,允许用户将交互式窗口主机切换到 .NET Core:

  • #reset 32- 切换到 .NET Framework 32 位进程
  • #reset 64- 切换到 .NET Framework 64 位进程
  • #reset core- 切换到 .NET Core 64 位进程

暂时将默认设置保留为 .NET Framework 64 位。


原始答案

看来目前没有办法。因为 C# Interactive 无法运行 Core CLR。

交互式窗口此时仅支持 .NET Framework。因此,功能仅限于 C# 7.3 及更低版本。太启用 C# 8 我们需要首先启用在 Core CLR 上运行(参见 #4788)。

https://github.com/dotnet/roslyn/issues/40341

于 2020-05-27T12:34:04.350 回答
-2

看起来 dotnet interactive 通过 Jupyter Notebooks 提供了类似的功能。 https://devblogs.microsoft.com/dotnet/net-interactive-preview-3-vs-code-insiders-and-polyglot-notebooks/ 这拯救了我的一天:-)

于 2020-10-14T11:39:58.020 回答