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

Muz*_*zib 16 c# c#-8.0

我在带有 Visual Studio 2019 v16.0.2 的 UWP 应用中使用 C# 8.0(测试版)。我试图使用 C# 8 的新范围功能,str[start..index]然后出现了两个错误:

  1. 未定义或导入预定义类型“System.Range”
  2. 未定义或导入预定义类型“System.Index”

但是没有我可以使用的参考。Visual Studio 本身建议我使用此功能。是该功能尚未提供还是什么?

iko*_*ddn 19

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

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

还可以在早期版本的 .NET(例如 .NET Standard 2.0 和 .NET Framework)上使用 C# 8.0 功能。为此,您需要覆盖项目中的默认 C# 版本。但是,这些早期版本并未正式支持指数和范围,并且无法开箱即用。话虽这么说,有一个可能的解决方法可以使其工作:https ://www.meziantou.net/how-to-use-csharp-8-indices-and-ranges-in-dotnet-standard-2-0- and-dotn.htm


小智 8

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

  • 太棒了,我用谷歌搜索了“C# range array”,第一个结果是 https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes ,完全没有迹象表明这还没有发布,读起来就像一个关于非常基本的东西的普通教程...... (7认同)