Использование сопоставления шаблонов (IDE0078 и IDE0260)
В этой статье описаны два связанных правила и IDE0078
IDE0260
.
Свойство | Значение |
---|---|
Идентификатор правила | IDE0078 |
Заголовок | Использование сопоставления шаблонов |
Категория | Стиль |
Подкатегории | Правила языка (параметры сопоставления шаблонов) |
Применимые языки | C# 9.0+ |
Options (Параметры) | csharp_style_prefer_pattern_matching |
Свойство | Значение |
---|---|
Идентификатор правила | IDE0260 |
Заголовок | Использование сопоставления шаблонов |
Категория | Стиль |
Подкатегории | Правила языка (параметры сопоставления шаблонов) |
Применимые языки | C# |
Options (Параметры) | csharp_style_pattern_matching_over_as_with_null_check |
Обзор
Это правило стиля относится к использованию конструкций сопоставления шаблонов C#.
IDE0260 специально помечает использование as
выражения, за которым следует член, считываемый через оператор null-условный. Это правило похоже на IDE0019, которое помечает использование as
выражения, за которым следует null
проверка.
Параметры
Параметры указывают поведение, которое требуется применить правило. Сведения о настройке параметров см . в разделе "Формат параметров".
csharp_style_prefer_pattern_matching (IDE0078)
Свойство | значение | Описание |
---|---|---|
Имя параметра | csharp_style_prefer_pattern_matching | |
Значения параметра | true |
Предпочитать использовать конструкции сопоставления шаблонов, когда это возможно |
false |
Предпочитать не использовать конструкции сопоставления шаблонов. | |
Значение параметра по умолчанию | true |
csharp_style_pattern_matching_over_as_with_null_проверка (IDE0260)
Этот параметр также настраивает правила IDE0019.
Свойство | значение | Описание |
---|---|---|
Имя параметра | csharp_style_pattern_matching_over_as_with_null_check | |
Значения параметра | true |
Предпочитайте сопоставление шаблонов с as выражением с доступом к члену с пустым условным значением. |
false |
Отключает проблемное правило. | |
Значение параметра по умолчанию | true |
Примеры
IDE0078
// csharp_style_prefer_pattern_matching = true
var x = i is default(int) or > (default(int));
var y = o is not C c;
// csharp_style_prefer_pattern_matching = false
var x = i == default || i > default(int);
var y = !(o is C c);
IDE0260
// Code with violations.
object? o = null;
if ((o as string)?.Length == 0)
{
}
// Fixed code (csharp_style_pattern_matching_over_as_with_null_check = true).
object? o = null;
if (o is string { Length: 0 })
{
}
Отключение предупреждений
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.IDE0078.severity = none
dotnet_diagnostic.IDE0260.severity = none
Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Style
none
в файле конфигурации.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.