次の方法で共有


パターン マッチングの使用 (IDE0078とIDE0260)

この記事では、IDE0078IDE0260の 2 つの関連ルールについて説明します。

財産 価値
ルール ID IDE0078
タイトル パターン マッチングを使用する
カテゴリ スタイル
サブカテゴリー 言語ルール (パターン マッチングの基本設定)
適用可能な言語 C# 9.0 以降
オプション csharp_style_prefer_pattern_matching
財産 価値
ルール ID IDE0260
タイトル パターン マッチングを使用する
カテゴリ スタイル
サブカテゴリ 言語ルール (パターン マッチングの基本設定)
該当する言語 C#
オプション csharp_style_pattern_matching_over_as_with_null_check

概要

このスタイル ルールは、C# パターン マッチング コンストラクトの使用に関するものです。

IDE0260 は、null 条件演算子を介して読み取られたメンバーがフォローする as 式の使用を具体的にフラグ付けします。 このルールは、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_check (IDE0260)

このオプションでは、ルール IDE0019も構成されます。

財産 価値 説明
オプション名 csharp_style_pattern_matching_over_as_with_null_check
オプション値 true null条件付きメンバーアクセスの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 })
{
}

警告を抑制する

1 つの違反のみを抑制する場合は、ソース ファイルにプリプロセッサ ディレクティブを追加して無効にしてから、ルールを再度有効にします。

#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

詳細については、「コード分析の警告を抑制する方法」を参照してください。

関連項目