Partager via


ASP0006 : n’utilisez pas de numéros de séquence non littérals

Valeur
Identificateur de la règle ASP0006
Catégorie Usage
Le correctif est cassant ou non cassant Non-breaking

La cause

Appel de méthode dans RenderTreeBuilder contenant un numéro de séquence qui n’est pas un littéral en tant que paramètre.

Description de la règle

BlazorL’algorithme de différence de l’interface utilisateur s’appuie sur des nombres de séquences pour déterminer quels éléments ont changé. Le calcul dynamique du numéro de séquence ou l'utilisation d'un compteur peut entraîner de mauvaises performances lors de la comparaison des différences. Utilisez plutôt un numéro de séquence littéral qui correspond à la ligne de code source de l’élément. Par exemple, le code suivant génère une erreur :

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

Comment corriger les violations

Pour corriger une violation de cette règle, assurez-vous que les appels aux méthodes sur la RenderTreeBuilder classe qui prennent un numéro de séquence en tant que paramètre utilisent un numéro de séquence littéral.

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

Quand supprimer les avertissements

Ne supprimez pas un avertissement de cette règle. L’utilisation d’un numéro de séquence non littéral peut entraîner une dégradation des performances.