Я начинаю новый. Net Базовый проект, и я не могу понять, как я должен реализовать обнуляемые ссылочные типы для пакетов nuget - PullRequest
0 голосов
/ 15 января 2020

По сути, я могу создать класс в проекте и определить, является ли строка нулевой или нет.

Теперь я могу загрузить пакет nuget, и если я посмотрю на строковое свойство некоторого класса, он скажет мне это не обнуляемо. Но я знаю, что это может быть обнуляемо.

Так что мне с этим делать? Является ли идеальный мир далеко впереди?

Вот пример Скачать пакет nuget RestSharp

Напишите эту строку

var response = new RestClient().ExecuteGetAsync(new RestRequest());

var myNullVariable = response.ErrorException;

Visual Studio не говорит, что это может быть нулевым.

1 Ответ

0 голосов
/ 25 апреля 2020

Ссылки могут иметь одно из трех состояний:

  1. Обнуляемый
  2. Не обнуляемый
  3. Не обращающий внимания

Первые два: ( относительно) очевидно. Последнее состояние не существовало бы, если бы NRT был введен с. NET 1.0, и существует только для обратной совместимости. При использовании кода, который не аннотирован (будь то в ваших собственных проектах или с помощью пакета NuGet), его ссылки считаются не обнуляемыми. Эти ссылки проходят через ваш код так же, как и до введения NRT.

Все это говорит о том, что любой пакет, на который вы ссылаетесь, должен будет аннотировать свой код, прежде чем вы сможете в полной мере использовать преимущества NRT при работе с ним. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...