Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Wartość | |
|---|---|
| Identyfikator reguły | ASP0006 |
| Kategoria | Użycie |
| Poprawka jest przełomowa lub bez przełomu | Niełamiący |
Przyczyna
Wywołanie metody w RenderTreeBuilder z numerem 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 doprowadzić do słabej wydajności różnicowania. Zamiast tego użyj dosłownego numeru sekwencji, który odpowiada linii 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 klasie RenderTreeBuilder, które przyjmują numer sekwencji jako parametr, używają literału numeru sekwencji.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
Kiedy pomijać ostrzeżenia
Nie pomijać ostrzeżenia z tej reguły. Użycie niesłownego numeru sekwencji może spowodować obniżenie wydajności.
ASP.NET Core