预定义类型 System.Range 未定义或未导入。

32
我在使用Visual Studio 2019 v16.0.2中的UWP应用程序,采用C# 8.0 (beta)。我想使用C# 8中的新范围运算符: str[start..index],但是出现了两个错误:

未定义或导入预定义类型 System.Range

未定义或导入预定义类型 System.Index

但我没有找到可以使用的参考文献。

Visual Studio本身建议我使用此功能。这是该功能尚未可用还是怎么回事?


2
C# 8和它所依赖的.NET Core 3运行时处于预览状态,甚至还没有进入beta版。您安装了哪个.NET Core 3 SDK版本?您可能需要安装更新版本。 - Panagiotis Kanavos
2个回答

17

这是尚未发布的 .NET Core 3 的一部分。


12
太棒了,我谷歌搜索了“C#范围数组”,其中一个最初的结果是https://learn.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes,并且完全没有表明这甚至还未发布,只是读起来像一篇关于相当基础的东西的普通教程... - Kevin

15

索引和范围是C# 8.0的一部分,于2019年9月与.NET Core 3.0一起发布。要使用所有C# 8.0的功能,您的目标框架必须是以下之一:

  • .NET Standard 2.1
  • .NET Core 3.0及更高版本
  • .NET 5.0及更高版本

也可以在早期版本的.NET上使用C# 8.0功能,例如.NET Standard 2.0和.NET Framework。为此,您需要覆盖项目中的默认C#版本。然而,索引和范围在这些早期版本上并没有得到官方支持,不能直接使用。话虽如此,有可能采用可行的解决方案来让其运行:https://www.meziantou.net/how-to-use-csharp-8-indices-and-ranges-in-dotnet-standard-2-0-and-dotn.htm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接