在 C# 交互式(作为 Visual Studio 2019 的一部分或独立)中,我想使用 C# 编写类似这样的代码:
var s = "abcdef";
var s1 = s[2..4];
这给出了以下消息:
(1,12):错误 CS0518:未定义或导入预定义类型“System.Range”
有没有办法修改例如 csi.exe.config 或其他方式以支持 C# 8.0 ?
在 C# 交互式(作为 Visual Studio 2019 的一部分或独立)中,我想使用 C# 编写类似这样的代码:
var s = "abcdef";
var s1 = s[2..4];
这给出了以下消息:
(1,12):错误 CS0518:未定义或导入预定义类型“System.Range”
有没有办法修改例如 csi.exe.config 或其他方式以支持 C# 8.0 ?
它在 Visual Studio 16.8.2 中工作。
只需输入#reset core
即可切换到 .NET Core。
根据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)。
看起来 dotnet interactive 通过 Jupyter Notebooks 提供了类似的功能。 https://devblogs.microsoft.com/dotnet/net-interactive-preview-3-vs-code-insiders-and-polyglot-notebooks/ 这拯救了我的一天:-)