Megosztás a következőn keresztül:


Mintaegyezés használata (IDE0078 és IDE0260)

Ez a cikk két kapcsolódó szabályt IDE0078 és IDE0260.

Tulajdonság Érték
Szabályazonosító IDE0078
Cím Mintaegyezés használata
Kategória Stílus
Alkategória Nyelvi szabályok (mintaegyeztetési beállítások)
Alkalmazandó nyelvek C# 9.0+
Beállítások csharp_style_prefer_pattern_matching
Tulajdonság Érték
Szabályazonosító IDE0260
Cím Mintaegyezés használata
Kategória Stílus
Alkategória Nyelvi szabályok (mintaegyeztetési beállítások)
Alkalmazandó nyelvek C#
Beállítások csharp_style_pattern_matching_over_as_with_null_check

Áttekintés

Ez a stílusszabály a C# mintaegyező szerkezetek használatára vonatkozik.

IDE0260 kifejezetten egy as kifejezés használatát jelöli, amelyet egy tag olvas be a null-feltételes operátoron keresztül. Ez a szabály hasonló a IDE0019, amely egy as kifejezés használatát jelöli, amelyet egy null ellenőrzés követ.

Beállítások

A beállítások határozzák meg a szabály kényszerítéséhez használni kívánt viselkedést. A beállítások konfigurálásával kapcsolatos információkért tekintse meg az Option formátumot.

csharp_style_prefer_pattern_matching (IDE0078)

Tulajdonság Érték Description
Beállítás neve csharp_style_prefer_pattern_matching
Beállításértékek true Ha lehetséges, inkább mintaegyező szerkezeteket használjon
false Inkább ne használjon mintaegyező szerkezeteket.
Alapértelmezett beállításérték true

csharp_style_pattern_matching_over_as_with_null_check (IDE0260)

Ez a beállítás a szabály IDE0019 is konfigurálható.

Tulajdonság Érték Description
Beállítás neve csharp_style_pattern_matching_over_as_with_null_check
Beállításértékek true Előnyben részesítse a mintaegyeztetést a as null feltételes taghozzáféréssel rendelkező kifejezéssel szemben.
false Letiltja a szabályt.
Alapértelmezett beállításérték true

Példák

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 })
{
}

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

#pragma warning disable IDE0078 // or IDE0260
// The code that's violating the rule is on this line.
#pragma warning restore IDE0078 // or IDE0260

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_diagnostic.IDE0078.severity = none
dotnet_diagnostic.IDE0260.severity = none

Az összes kódstílus-szabály letiltásához állítsa be a kategória Style súlyosságát none a konfigurációs fájlban.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Kapcsolódó információk