【问题标题】:predefined type System.Range is not defined or imported未定义或导入预定义类型 System.Range
【发布时间】:2019-05-11 14:14:52
【问题描述】:

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

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

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

【问题讨论】:

  • C# 8 和它所依赖的 .NET Core 3 运行时处于预览阶段,甚至还不是测试版。您安装了哪个 .NET Core 3 SDK 版本?您可能需要安装更新的版本。

标签: c# c#-8.0


【解决方案1】:

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

【讨论】:

【解决方案2】:

Indices and Ranges 是 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 功能。为此,您需要在您的项目上override the default C# version。但是,这些早期版本不正式支持指数和范围,并且不能开箱即用。话虽如此,有一种可能的解决方法可以使它起作用:https://www.meziantou.net/how-to-use-csharp-8-indices-and-ranges-in-dotnet-standard-2-0-and-dotn.htm

【讨论】:

    猜你喜欢
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 2016-11-17
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多