Udostępnij za pośrednictwem


ASP0006: Nie używaj liczb sekwencji niesłownych

Wartość
Identyfikator reguły ASP0006
Kategoria Użycie
Poprawka powodująca niezgodność lub niezgodność Niezgodność

Przyczyna

Wywołanie metody zawierającej RenderTreeBuilder numer sekwencji, który nie jest literałem jako parametrem.

Opis reguły

BlazorAlgorytm różnicowania interfejsu użytkownika opiera się na numerach sekwencji w celu określenia, które elementy uległy zmianie. Dynamiczne obliczanie numeru sekwencji lub użycie licznika może spowodować niską wydajność. Zamiast tego należy użyć numeru sekwencji literału mapowania na wiersz kodu źródłowego dla elementu. Na przykład następujący kod generuje błąd:

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

Jak naprawić naruszenia

Aby naprawić naruszenie tej reguły, upewnij się, że wywołania metod w RenderTreeBuilder klasie, które przyjmują numer sekwencji jako parametr, używają numeru sekwencji literału.

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

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia z tej reguły. Użycie niesłownego numeru sekwencji może spowodować obniżenie wydajności.