CA2012: ValueTasks helyes használata
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA2012 |
Cím | ValueTasks helyes használata |
Kategória | Megbízhatóság |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Javaslatként |
Ok
A ValueTask tagok meghívásából visszaadott példányok olyan módon használhatók, amely kivételeket, sérülést vagy gyenge teljesítményt eredményezhet.
Szabály leírása
ValueTask a tagok meghívásából visszaadott példányokat közvetlenül várják. A ValueTask többszöri felhasználására vagy az eredmény közvetlen elérésére tett kísérletek az ismert befejezés előtt kivételt vagy sérülést okozhatnak. Az ilyen ValueTask figyelmen kívül hagyása valószínűleg egy funkcionális hiba jele, és ronthatja a teljesítményt.
Szabálysértések kijavítása
Általánosságban elmondható, hogy az Értéktaskokat közvetlenül kell várni ahelyett, hogy elvetnék vagy más helyekre, például helyi változókba vagy mezőkbe tárolnák.
Mikor kell letiltani a figyelmeztetéseket?
Az tetszőleges taghívásokból visszaadott objektumok esetében ValueTask
a hívónak azt kell feltételeznie, hogy a ValueTask
használatban kell lennie (például várnia kell) egyszer és csak egyszer. Ha azonban a fejlesztő a meghívandó tagot is vezérli, és teljes körű ismeretekkel rendelkezik a megvalósításról, a fejlesztő biztos lehet abban, hogy a figyelmeztetést nyugodtan letilthatja, például ha a visszatérés ValueTask
mindig körbefut egy Task objektumon.
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 CA2012
// The code that's violating the rule is on this line.
#pragma warning restore CA2012
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.CA2012.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Kapcsolódó információk
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: