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();
隱藏警告的時機
請勿隱藏此規則的警告。 使用非常值序號可能會導致效能降低。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應