Ответ 1
Я отправил запрос команды (запроС# 19180) команде разработчиков, и они подтвердили, что это ошибка. Здесь вы можете увидеть весь статус в GitHub dotnet/roslyn.
Пильчи прокомментировал 16 часов назад
Я могу воспроизвести это в 15.2, но не 15.3. Перейдем к компилятору на основе стека, > Abut. Я уверен, что это обман. @jcouv?jcouv прокомментировал (а) 16 часов назад
Да, это дубликат (№ 17229 и, возможно, еще один). Это было исправлено в dev15.3 (# 17544), и мы, к сожалению, не смогли вытащить исправление в dev15.2. Спасибо @Matt11 за то, что вы зарегистрировали проблему и извините за ошибку.
Кажется, что он уже исправлен и будет, насколько я понял, доступным в следующем обновлении. Но нет объявленной даты, когда он будет включен Microsoft, поэтому я представил проблему через "Отправить отзыв/Сообщить о проблеме" в Visual Studio 2017.
Примечания:
-
Проблема не ограничивается TryParse. Я подтвердил, что это также происходит, если вы пишете свою собственную функцию, то есть следующий пример показывает предупреждение AD0001:
static void Main(string[] args) { bool myOutDemo(string str, out int result) { result = (str??"").Length; return result > 0; } // discard out parameter if (myOutDemo("123", out _)) Console.WriteLine("String not empty"); }
-
Я заметил, что теперь доступен предварительный просмотр VS Version 15.3, который должен содержать исправление, упомянутое в комментариях GitHub. Ознакомьтесь со следующей ссылкой: Visual Studio 2017 Версия 15.3 Предварительный просмотр. После его установки я снова проверил проблему и могу подтвердить, что она там исправлена.
Спасибо всем, кто участвовал в обсуждении выше! (вопросы)