共用方式為


Gc.GetGeneration 可能會傳回 Int32.MaxValue

從 .NET 8 開始,GC.GetGeneration 可能會針對非 GC 堆積上配置的物件傳回 Int32.MaxValue (也稱為「凍結」堆積),其中先前傳回 2。 執行階段在非 GC 堆積上配置物件的時機和方式是內部實作詳細資料。 例如,字串常值是在非 GC 堆積上配置,而下列方法呼叫可能會傳回 Int32.MaxValue

int gen = GC.GetGeneration("string");

先前的行為

先前,GC.GetGeneration 傳回 0-2 範圍內的整數值。

新的行為

從 .NET 8 開始,GC.GetGeneration 可以傳回 0、1、2 或 Int32.MaxValue 值。

導入的版本

.NET 8 Preview 4

中斷性變更的類型

此變更為行為變更

變更原因

.NET 引進了新的非 GC 堆積類型,其與現有堆積稍有不同,現有堆積為大型物件堆積 (LOH)、小型物件堆積 (SOH),以及釘選的物件堆積 (POH)。

請確定您並未使用來自 GC.GetGeneration() 的傳回值做為陣列索引子,或用於任何其他未預期的 Int32.MaxValue

受影響的 API