ASP0006: non usare numeri di sequenza non letterali
Valore | |
---|---|
ID regola | ASP0006 |
Categoria | Utilizzo |
Correzione che causa un'interruzione o un'interruzione | Nessuna interruzione |
Causa
Chiamata su un metodo in RenderTreeBuilder contenente un numero di sequenza che non è un valore letterale come parametro.
Descrizione regola
BlazorL'algoritmo di diffing dell'interfaccia utente si basa sui numeri di sequenza per determinare quali elementi sono stati modificati. Il calcolo del numero di sequenza in modo dinamico o l'uso di un contatore può comportare prestazioni insufficienti. Usare invece un numero di sequenza letterale mappato alla riga del codice sorgente per l'elemento. Ad esempio, il codice seguente genera un errore:
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
Come correggere le violazioni
Per correggere una violazione di questa regola, assicurarsi che le chiamate ai metodi nella RenderTreeBuilder classe che accettano un numero di sequenza come parametro usino un numero di sequenza letterale.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
Quando eliminare gli avvisi
Non eliminare un avviso da questa regola. L'uso di un numero di sequenza non letterale può comportare una riduzione delle prestazioni.