Компилятор просит вас использовать более новую версию языка, а не более новую версию. NET. Каждая версия. NET поддерживает обнуляемые типы ссылок. Ссылки могут быть нулевыми в любой версии. NET, вы просто не могли аннотировать это в C# до C# 8.0.
Однако ваш проект настроен для C# 7.3, вы нужно сменить языковую версию. Пожалуйста, обратитесь к Как включить функцию Nullable Reference Types C# 8.0 для всего проекта .
См. Также В чем разница между C# и. NET?
Как только ваш проект настроен для C# 8.0 и с включенными типами ссылок Nullable… Roslyn, компилятор C#, будет понимать аннотации обнуляемости и обеспечивать анализ кода на их основе.
И вам все равно придется иметь дело с нулем. Что может означать нулевые проверки. Доступ к элементу нулевой ссылки по-прежнему NullReferenceException
, даже в C# 8.0. По крайней мере, анализ stati c поможет вам.
См. Что такое исключение NullReferenceException и как его исправить? .
Если есть вероятность, что вам действительно потребуется запустить новые функции в старой среде выполнения (например, async
/ await
in. NET 2.0), у меня может быть решение для вас: Theraot. ядро . Из которых, полное раскрытие, я автор.