Teilen über


ASP0006: Verwenden Sie keine nicht literalen Sequenznummern.

Wert
Regel-ID ASP0006
Kategorie Usage
Korrektur ist blockierend oder nicht-blockierend Non-breaking

Ursache

Ein Aufruf einer Methode in RenderTreeBuilder, die eine Sequenznummer als Parameter hat, die kein Literal ist.

Regelbeschreibung

BlazorDer Benutzeroberflächen-Diffingalgorithmus basiert auf Sequenznummern, um zu bestimmen, welche Elemente sich geändert haben. Das dynamische Berechnen der Sequenznummer oder die Zählernutzung kann zu einer schlechten Differenzierungsleistung führen. Verwenden Sie stattdessen eine Literalsequenznummer, die der Quellcodezeile für das Element zugeordnet ist. Der folgende Code erzeugt beispielsweise einen Fehler:

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

Wie man Verstöße behebt

Um einen Verstoß gegen diese Regel zu beheben, stellen Sie sicher, dass Methodenaufrufe der Klasse RenderTreeBuilder, die eine Sequenznummer als Parameter annehmen, eine literale Sequenznummer verwenden.

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

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung aus dieser Regel. Die Verwendung einer nicht literalen Sequenznummer kann zu Leistungsbeeinträchtigungen führen.