#c# #suppress-warnings #.net-5
#c# #подавить-предупреждения #.net-5
Вопрос:
Когда я создавал свое приложение на C # с .NET Core 3.1 на уровне предупреждений 5, мне пришлось либо исправить, либо вручную подавить предупреждение 8600 в этом коде, иначе мое приложение не будет собираться. Например:
#pragma warning disable 8600 // string literal.
throw new ExternalException("Invalid path", result);
#pragma warning restore 8600
Предупреждение заключалось в том, что я использовал строковый литерал в исключении. Это имеет смысл; Строка может стать доступной для пользователя, поэтому она должна быть в файле RESX. Это помогло мне отследить все жестко запрограммированные строки пользовательского интерфейса в моем приложении и, таким образом, сделало наши усилия по переводу более надежными
Но теперь, когда я обновился до .NET 5 / C # 9, окно ошибки Visual Studio 2019 (версия 16.8.3) сообщает мне «Удалить ненужное подавление» для приведенного выше фрагмента кода. Мой код отлично строится без него.
Почему это предупреждение теперь стало ненужным?
(Это не имеет никакого отношения к пакетам NuGet CodeAnalyzer, не так ли?)
Комментарии:
1. Это задокументировано , нет реальной идеи, что они на самом деле пытаются сказать. Единственное, что я понимаю, это то, что слишком много людей получили это предупреждение, поэтому они его удалили.
2. Что ж, это позор. Я не могу понять, почему люди просто не отключили его. Я вижу ту же проблему с бывшим предупреждением FxCop CA1303, что примерно одно и то же. Теперь, когда я перешел от анализаторов FxCop к Microsoft. Анализ кода. NetAnalyzers (как сам процесс сборки поручил мне, как только я перешел на .NET 5), это предупреждение также считается «ненужным». Я считаю это совершенно необходимым.
3. И еще раз спасибо. Я должен признать, что даже после рассмотрения проблемы, на которую вы ссылались, без вашего анализа причина, по которой она была удалена, была бы совершенно неясной. Конечно, я вижу проблему, и я вижу, что она была закрыта. Но я перехожу по всем ссылкам, которые могу, но все же не понимаю, почему