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


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