Почему я не могу использовать System.Index в UWP даже после включения C # 8 в csproj? - PullRequest
0 голосов
/ 27 февраля 2020

В проекте библиотеки UWP (такой старый формат вместо формата SDK csproj) я добавил 8.0 , и это позволяет мне использовать функции C # 8, такие как альтернативный с использованием оператора (без брекеты). Однако тип System.Index недоступен. Почему это так и как заставить его работать?

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Вы не можете. Это не вопрос Visual Studio или языковой версии C#. Если вы отметите раздел Применимо к в документах Index , вы увидите, что он доступен только в формате NET Standard 2.1. Вы не можете использовать его в более старых версиях.

Один из вариантов - обновить все ваши проекты до. NET Core 3.1 или. NET Standard 2.1. Другим вариантом может быть многоцелевое использование и добавление директив условной компиляции для использования Index только для цели. NET Standard 2.1 target

1 голос
/ 27 февраля 2020

Почему я не могу использовать System.Index в UWP даже после включения C # 8 в csproj?

Пожалуйста, отметьте langversion (C# Compiler Опции) документ,

C# 8.0 доступен только в Microsoft Visual Studio / Build Tools 2019, версия 16.3 или. NET Core 3.0 SDK. И вы упомянули Индекс относится только к NET Core 3.1 3.0. NET Стандарт 2.1. Таким образом, он не будет работать в старом проекте библиотеки UWP.

как мне заставить его работать?

Рекомендованный способ - это сделать. NET Standard (2.1) класс lib вместо старого класса UWP lib. Однако NET Standard 2.1 пока не поддерживает UWP. и это TBD статус, пожалуйста, обратите внимание на следующую версию.

...