为什么即使在 csproj 中启用 C#8 后我也不能在 UWP 中使用 System.Index?

Why can't I use System.Index in UWP even after enabling C#8 in the csproj?

在 UWP 库项目(如此旧的格式而不是 SDK 格式 csproj)中,我添加了 8.0 并且它允许我使用 C#8 功能,例如备用 using 语句(不带大括号)。但是,System.Index 类型不可用。为什么会这样,我该如何让它发挥作用?

Why can't I use System.Index in UWP even after enabling C#8 in the csproj?

请检查langversion (C# Compiler Options)文档,

C# 8.0 仅在 Microsoft Visual Studio/Build Tools 2019 版本 16.3 或 .NET Core 3.0 SDK 中可用。而你提到的 Index 仅适用于 NET Core 3.1 3.0。净标准 2.1。所以它不会在旧的 UWP 库项目中工作。

how do I get it to work?

推荐的方法是您可以制作一个 .NET Standard(2.1) class 库来代替旧的 UWP class 库。但是,NET Standard 2.1 还不支持 UWP。并且是TBD状态,请关注后续发布

你不能。这不是 Visual Studio 或 C# 语言版本的问题。如果您查看 Applies To section in the Index 文档,您会发现它仅适用于 .NET Standard 2.1 类型。您不能在较旧的运行时中使用它。

一种选择是将所有项目升级到 .NET Core 3.1 或 .NET Standard 2.1。另一种选择是多目标,并添加条件编译指令以仅将 Index 用于 .NET Standard 2.1 目标