共用方式為


ASP0006:請勿使用非字面序號

價值
規則識別碼 ASP0006
類別 用法
修正是破壞性或非破壞性 不間斷

原因

RenderTreeBuilder 方法的調用,其中包含不是常值做為參數的序號。

規則描述

Blazor的 UI 差異演算法依賴序號來判斷哪些元素已變更。 以動態方式計算序號或使用計數器可能會導致差異效能不佳。 請改用對應至原始碼行的字面序號。 例如,下列程式代碼會產生錯誤:

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();

隱藏警告的時機

請勿 不要 隱藏此規則的警告。 使用非字面意義的序號可能會導致效能降低。