ASP0006. Не используйте номера последовательности, не являющиеся литеральными
Значение | |
---|---|
Идентификатор правила | ASP0006 |
Категория | Использование |
Исправление является критическим или не критическим | Не критическое |
Причина
Вызов метода, RenderTreeBuilder содержащего порядковый номер, который не является литеральным в качестве параметра.
Описание правила
BlazorАлгоритм диффинга пользовательского интерфейса зависит от порядковых номеров, чтобы определить, какие элементы изменились. Вычисление номера последовательности динамически или использование счетчика может привести к низкой производительности диффинга. Вместо этого используйте номер последовательности литерала, который сопоставляется со строкой исходного кода для элемента. Например, следующий код приводит к ошибке:
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
var seqNum = 1;
builder.OpenElement(seqNum, "div");
builder.CloseElement();
Устранение нарушений
Чтобы устранить нарушение этого правила, убедитесь, что вызовы методов класса RenderTreeBuilder , которые принимают порядковый номер в качестве параметра, используют литеральный порядковый номер.
using Microsoft.AspNetCore.Components.Rendering;
var builder = new RenderTreeBuilder();
builder.OpenElement(0, "div");
builder.CloseElement();
Когда лучше отключить предупреждения
Не подавляйте предупреждение из этого правила. Использование номера последовательности, отличного от литерального, может привести к снижению производительности.
ASP.NET Core