警告 CA2014:請勿在迴圈中使用 stackalloc

從 .NET 5 開始,系統會預設啟用 .NET 程式碼分析器規則 CA2014。 這項規則會針對任何在迴圈內使用 stackalloc 運算式的 C# 程式碼產生組建警告。

變更描述

從 .NET 5 開始,.NET SDK 包含 .NET 原始程式碼分析器。 這些規則中有些會預設啟用,包括 CA2014。 如果您的專案包含違反此規則的程式碼,且設定為將警告視為錯誤,則此項變更會中斷您的組建。

規則 CA2014 會尋找在迴圈內使用 stackalloc 運算式 的 C# 程式碼。 stackalloc 會從現有的堆疊框架中配置記憶體。 現行的方法呼叫必須先傳回,系統才會釋放記憶體,而這會造成堆疊溢位。 您無法攔截堆疊溢位的例外狀況,因此若發生堆疊溢位,則系統會終止應用程式。

導入的版本

5.0

  • 避免在迴圈內使用 stackalloc。 將記憶體區塊配置在迴圈之外,並在迴圈內重複使用。 如需詳細資訊,請參閱 CA2014

  • 若要完全停用程式碼分析,請在專案檔中將 EnableNETAnalyzers 設定為 false。 如需詳細資訊,請參閱 EnableNETAnalyzers

受影響的 API

無法透過 API 分析偵測。