Compartilhar via


ASP0006: não use números de sequência não literais

Value
ID da regra ASP0006
Categoria Usage
Correção é disruptiva ou não disruptiva Non-breaking

Motivo

Uma invocação em um método em RenderTreeBuilder contendo um número de sequência que não é um literal como parâmetro.

Descrição da regra

BlazorO algoritmo de diferenciação de interface do usuário depende de números de sequência para determinar quais elementos foram alterados. Calcular o número de sequência dinamicamente ou usar um contador pode resultar em um desempenho de diferenciação ruim. Em vez disso, use um número de sequência literal que mapeie para a linha do código-fonte do elemento. Por exemplo, o código a seguir produz um erro:

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

Como corrigir violações

Para corrigir uma violação dessa regra, verifique se as chamadas para métodos na RenderTreeBuilder classe que usam um número de sequência como parâmetro usam um número de sequência literal.

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

Quando suprimir avisos

Não suprimir um aviso desta regra. Usar um número de sequência não literal pode resultar em degradação de desempenho.