Delen via


ASP0006: gebruik geen niet-letterlijke volgnummers

Waarde
Regel-id ASP0006
Categorie Gebruik
De oplossing veroorzaakt brekende of niet-brekende problemen Niet-afbreekbaar

Oorzaak

Een aanroep op een methode in RenderTreeBuilder met een volgnummer dat geen letterlijke waarde heeft als parameter.

Beschrijving van regel

BlazorHet diffing-algoritme van de gebruikersinterface is afhankelijk van volgnummers om te bepalen welke elementen zijn gewijzigd. Het dynamisch berekenen van het volgnummer of het gebruik van een teller kan leiden tot slechte diffing-prestaties. Gebruik in plaats daarvan een exact volgnummer dat overeenkomt met de broncoderegel van het element. Met de volgende code wordt bijvoorbeeld een fout gegenereerd:

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

Hoe schendingen op te lossen

Als u een schending van deze regel wilt oplossen, zorg er dan voor dat aanroepen naar methoden in de RenderTreeBuilder-klasse die een volgnummer als parameter hebben, gebruikmaken van een specifiek volgnummer.

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

Wanneer waarschuwingen onderdrukken

Onderdruk geen waarschuwing van deze regel. Als u een niet-letterlijk volgnummer gebruikt, kan dit leiden tot een verslechtering van de prestaties.