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 i
pé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 IDE0020
IDE0038
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áulif (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áulif (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.