Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описаны два связанных правила, IDE0020 и IDE0038.
| Свойство | Ценность |
|---|---|
| идентификатор правила | IDE0020 |
| Заголовок | Используйте сопоставление шаблонов, чтобы избежать проверки is, за которой следует приведение типа (с переменной) |
| категория | Стиль |
| Подкатегория | Языковые правила (параметры сопоставления шаблонов) |
| применимые языки | C# |
| параметры | csharp_style_pattern_matching_over_is_with_cast_check |
| Свойство | Ценность |
|---|---|
| идентификатор правила | IDE0038 |
| Заголовок | Используйте сопоставление шаблонов, чтобы избежать проверки is, за которой следует приведение типа (без использования переменной). |
| Категория | Стиль |
| Подкатегория | Языковые правила (параметры сопоставления шаблонов) |
| применимые языки | C# |
| Опции | csharp_style_pattern_matching_over_is_with_cast_check |
Обзор
Это правило стиля касается использования шаблонов C# для сопоставления , например, o is int i, вместо проверки is с последующим приведением типа, например, if (o is int) { ... (int)o ... }. Включите IDE0020 или IDE0038 на основе того, следует ли сохранить выражение приведения в отдельную локальную переменную:
-
IDE0020: выражение приведения сохраняется как локальная переменная. Например,if (o is int) { var i = (int)o; }сохраняет результат(int)oв локальной переменной. -
IDE0038. Выражение приведения не сохранено в локальной переменной. Например,if (o is int) { if ((int)o == 1) { ... } }не сохраняет результат(int)oв локальную переменную.
Параметры
Задайте значение для связанного параметра этого правила, чтобы указать, предпочтительно ли сопоставление шаблонов или проверка is с последующим приведением типа.
Дополнительные сведения о настройке параметров см. в формате параметра.
csharp_style_pattern_matching_over_is_with_cast_check
| Свойство | Ценность | Описание |
|---|---|---|
| имя параметра | csharp_стиль_сопоставления_шаблонов_вместо_проверки_и_приведения_типа | |
| значения опций | true |
Предпочитайте сопоставление шаблонов вместо is выражений с приведениями типов. |
false |
Отключает правило. | |
| значение параметра по умолчанию | true |
// csharp_style_pattern_matching_over_is_with_cast_check = true
if (o is int i) {...}
// csharp_style_pattern_matching_over_is_with_cast_check = false
if (o is int) {var i = (int)o; ... }
Подавление предупреждения
Если вы хотите отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации .
[*.{cs,vb}]
dotnet_diagnostic.IDE0020.severity = none
dotnet_diagnostic.IDE0038.severity = none
Чтобы отключить все правила стиля кода, задайте уровень серьезности для категории Style, чтобы none в файле конфигурации .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Дополнительные сведения см. в статье Подавление предупреждений анализа кода.
См. также
- сопоставление шаблонов в C#
- Правила языка стиля кода
- справочник по правилам стиля кода