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


Használjon mintaegyezést az "is" ellenőrzés és a leadás (IDE0020 és IDE0038) elkerüléséhez

Ez a cikk két kapcsolódó szabályt IDE0020 és IDE0038.

Tulajdonság Érték
Szabályazonosító IDE0020
Cím Mintaegyeztetés használata az ellenőrzés és a leadás (változóval) követésének elkerülése érdekében is
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_is_with_cast_check
Tulajdonság Érték
Szabályazonosító IDE0038
Cím Mintamegfeleltetés használata az ellenőrzés és a leadás (változó nélkül) elkerülése érdekében is
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_is_with_cast_check

Áttekintés

Ez a stílusszabály a C# -mintaegyezés használatát érinti, o is int ipéldául egy is ellenőrzésen, amelyet egy öntött elem követ, például if (o is int) { ... (int)o ... }. Engedélyezheti vagy IDE0020IDE0038 attól függően, hogy a leadott kifejezést külön helyi változóba kell-e menteni:

  • IDE0020: A cast kifejezés egy helyi változóba lesz mentve. Például if (o is int) { var i = (int)o; } egy helyi változóban menti az eredményt (int)o .
  • IDE0038: A cast kifejezés nem mentve van egy helyi változóba. Például if (o is int) { if ((int)o == 1) { ... } } nem menti az eredményt (int)o egy helyi változóba.

Beállítások

A szabályhoz társított beállítás értékének beállításával megadhatja, hogy a mintaegyezés vagy is az ellenőrzés és a típus leadása legyen-e előnyben.

A beállítások konfigurálásáról további információt az Option formátum című témakörben talál.

csharp_style_pattern_matching_over_is_with_cast_check

Tulajdonság Érték Leírás
Beállítás neve csharp_style_pattern_matching_over_is_with_cast_check
Beállításértékek true A típusjelekkel rendelkező kifejezések helyett is inkább a mintaegyezést részesítse előnyben.
false Letiltja a szabályt.
Alapértelmezett beállításérték 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; ... }

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 IDE0020 // Or IDE0038
// The code that's violating the rule is on this line.
#pragma warning restore IDE0020 // Or IDE0038

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.IDE0020.severity = none
dotnet_diagnostic.IDE0038.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.

Lásd még