Sdílet prostřednictvím


ASP0006: Nepoužívejte nesekvenční pořadová čísla

Hodnota
Identifikátor pravidla ASP0006
Kategorie Použití
Oprava je destruktivní nebo nedestruktivní Nezlomitelný

Příčina

Vyvolání na metodě RenderTreeBuilder obsahující pořadové číslo, které není literál jako parametr.

Popis pravidla

BlazorAlgoritmus rozdílu uživatelského rozhraní spoléhá na pořadová čísla k určení, které prvky se změnily. Dynamický výpočet pořadového čísla nebo použití čítače může vést k nízké efektivitě při porovnávání rozdílů. Místo toho použijte doslovné pořadové číslo, které se mapuje na řádek zdrojového kódu prvku. Například následující kód vytvoří chybu:

using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();

Jak opravit porušení

Chcete-li opravit porušení tohoto pravidla, ujistěte se, že volání metod třídy RenderTreeBuilder , které jako parametr přebírají pořadové číslo, používají literálové pořadové číslo.

using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();

Kdy potlačit upozornění

Ne potlačujte upozornění z tohoto pravidla. Použití jiného než literálového pořadového čísla může vést ke snížení výkonu.