Почему TryParse в синтаксисе C#7 (пустой параметр) выдает предупреждение при его компиляции?C#

Место общения программистов C#
Ответить
Anonymous
 Почему TryParse в синтаксисе C#7 (пустой параметр) выдает предупреждение при его компиляции?

Сообщение Anonymous »

В C#7 это разрешено
if (int.TryParse("123", out int result))
Console.WriteLine($"Parsed: {result}");

или — если вы не используете результат и просто хотите проверить успешность синтаксического анализа, отбросьте выходное значение:
if (int.TryParse("123", out _))
Console.WriteLine("Syntax OK");

Обычно это работает нормально, но в Visual Studio 2017 второй пример, где outПараметр пуст, генерирует предупреждение.

Предупреждение AD0001: анализатор «Microsoft.CodeAnalysis.CSharp.Diagnostics.SimplifyTypeNames.CSharpSimplifyTypeNamesDiagnosticAnalyzer» выдало исключение типа «System.NullReferenceException» с сообщением «Ссылка на объект не установлена ​​на экземпляр object.'.

Версии Visual Studio, в которых я мог убедиться, что это происходит:

Выпуск Visual Studio Enterprise 2017 версии 15.1 (26403.7)

Выпуск Visual Studio Enterprise 2017 версии 15.2 (26430.4)

Это ошибка или использование int.TryParse("123", out _) официально не поддерживается? Пока мне не удалось найти никакой подсказки.

Для полноты приведем код консольного приложения, показывающего проблему:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
if (int.TryParse("123", out _))
Console.WriteLine("Syntax OK");
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/437 ... -if-you-co
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»