Olvasás angol nyelven

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 IDE0260ismertet.

Ingatlan É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)
Alkalmazható nyelvek C# 9.0+
Beállítások csharp_style_prefer_pattern_matching
Ingatlan É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)
Alkalmazható nyelvek C#
Beállítások csharp_style_pattern_matching_over_as_with_null_check

Áttekintés

Ez a stílusszabály a C# szerkezeteknek megfelelő minta használatára vonatkozik.

IDE0260 kifejezetten jelöli egy as kifejezés használatát, amelyet egy tag olvasása követ a null-feltételes operátorhasználatával. Ez a szabály hasonló az IDE0019-hez, amely jelzi egy as kifejezés használatát, majd egy null-ellenőrzést.

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. További információ a beállítások konfigurálásáról: Beállításformátum.

csharp_stílus_preferálja_a_mintaillesztést (IDE0078)

Ingatlan Érték Leírás
beállításnév 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

mintaszerű illesztés az 'as' használata helyett null-ellenőrzéssel (IDE0260)

Ez a beállítás a szabály IDE0019konfigurációját is elvégzi.

Ingatlan Érték Leírás
beállításnév csharp_stílus_mintaillesztés_az_as_módszerrel_szemben_nulla_ellenőrzéssel
beállításértékek true Részesítse előnyben a mintázatillesztést a as kifejezés helyett null feltételes tageléréssel.
false Kikapcsolja a szabályt.
alapértelmezett beállításérték true

Példák

IDE0078

C#
// 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

C#
// 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.

C#
#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.

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

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

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

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

Lásd még: