Использование сопоставления шаблонов (IDE0078 и IDE0260)
В этой статье описаны два связанных правила, IDE0078
и IDE0260
.
Собственность | Ценность |
---|---|
идентификатор правила | IDE0078 |
Заголовок | Использование сопоставления шаблонов |
Категория | Стиль |
подкатегория | Языковые правила (параметры сопоставления шаблонов) |
применимые языки | C# 9.0+ |
Параметры | csharp_style_prefer_pattern_matching |
Свойство | Ценность |
---|---|
идентификатор правила | IDE0260 |
Заголовок | Использование сопоставления шаблонов |
категория | Стиль |
Подкатегория | Языковые правила (параметры сопоставления шаблонов) |
применимые языки | C# |
Параметры | csharp_style_pattern_matching_over_as_with_null_check |
Обзор
Это правило стиля касается использования шаблонов C#, соответствующих конструкциям.
IDE0260 специально помечает использование выражения as
, за которым следует член, считываемый через с условным оператором NULL. Это правило похоже на IDE0019, которое помечает использование выражения as
, за которым следует проверка null
.
Параметры
Параметры указывают поведение, которое правило должно применять. Сведения о настройке параметров см. в в формате параметра.
csharp_style_prefer_pattern_matching (IDE0078)
Свойство | Ценность | Описание |
---|---|---|
имя параметра | Предпочтение стилю C# с использованием сопоставления шаблонов | |
значения опции | true |
Предпочитать использовать конструкции сопоставления шаблонов, когда это возможно |
false |
Предпочитать не использовать конструкции сопоставления шаблонов. | |
значение параметра по умолчанию | true |
csharp_style_pattern_matching_over_as_with_null_check (IDE0260)
Этот параметр также настраивает правило IDE0019.
Свойство | Ценность | Описание |
---|---|---|
имя параметра | стиль_csharp_сопоставление_шаблонов_вместо_as_с_проверкой_на_нулевое_значение | |
значения опции | 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
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- C# 9.0: сопоставление шаблонов
- Правила языка стиля кода
- справочник по правилам стиля кода