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.