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();
隱藏警告的時機
請勿隱藏此規則的警告。 使用非常值序號可能會導致效能降低。