CA2012: Správné použití hodnotových hodnot

Vlastnost Hodnota
ID pravidla CA2012
Název Správně použít hodnoty ValueTask
Kategorie Spolehlivost
Oprava způsobující chybu nebo chybu způsobující chybu Nenarušující
Povoleno ve výchozím nastavení v .NET 8 Jako návrh

Příčina

ValueTask Instance vrácená z volání člena se používá způsobem, který může vést k výjimkám, poškození nebo nízkému výkonu.

Popis pravidla

ValueTask Instance vrácené z volání členů mají být přímo očekávány. Pokusy o vícenásobné využití hodnoty ValueTask nebo přímý přístup k výsledku jednoho z nich dříve, než je známo, že je dokončen, může vést k výjimce nebo poškození. Ignorování takové hodnoty ValueTask pravděpodobně značí funkční chybu a může snížit výkon.

Jak opravit porušení

Obecně platí, že hodnoty ValueTasks by měly být přímo očekávány místo zahození nebo uložení do jiných umístění, jako jsou místní proměnné nebo pole.

Kdy potlačit upozornění

U ValueTask objektů vrácených z libovolných volání členů volající musí předpokládat, že ValueTask musí být spotřebováno (například očekáváno) jednou a pouze jednou. Pokud však vývojář také řídí vyvolání člena a má úplné znalosti o jeho implementaci, vývojář může vědět, že je bezpečné potlačit upozornění, například pokud vrácení ValueTask vždy zabalí Task objekt.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable CA2012
// The code that's violating the rule is on this line.
#pragma warning restore CA2012

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.CA2012.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Viz také