在C#交互式(作为Visual Studio 2019或独立版本的一部分(中,我想使用C#编写这样的代码:
var s = "abcdef";
var s1 = s[2..4];
这会给出以下信息:
(1,12(:错误CS0518:预定义类型"System.Range"未定义或进口
是否有方法修改例如csi.exe.config或其他方式以支持C#8.0?
更新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
看起来dotnet interactive通过Jupyter Notebooks提供了类似的功能。https://devblogs.microsoft.com/dotnet/net-interactive-preview-3-vs-code-insiders-and-polyglot-notebooks/这救了我一天:-(