Alapértelmezett Equals() és GetHashCode() dobás a következővel megjelölt típusok esetén: InlineArrayAttribute

A megjelölt Equals(Object) típusok alapértelmezett viselkedése GetHashCode()InlineArrayAttribute most NotSupportedExceptionegy . A kódtár-szerzőknek felül kell bírálniuk ezt a két metódust, ha várhatóan nem dobják ki őket.

Előző viselkedés

Korábban az alapértelmezett implementációk csak a helyőrző ref mezőt használták az egyenlőség vagy a kivonatkód kiszámításakor.

Új viselkedés

A .NET 9-től kezdve a rendszer mindig az alapértelmezett implementációkból NotSupportedException indul ki, Equals(Object) és GetHashCode() amikor InlineArrayAttribute egy típusra alkalmazza a rendszer.

Bevezetett verzió

.NET 9 előzetes verzió 6

A kompatibilitástörő változás típusa

Ez a változás viselkedésbeli változás.

A változás oka

A jelenlegi viselkedés helytelen mind az egyenlőség meghatározásához, mind a kivonatkód kiszámításához, és a felhasználók téves helyességi érzetet váltanak ki a függvények meghívásakor.

A kódtár-szerzőknek egyaránt Equals(Object) és GetHashCode() minden olyan típuson is implementálniuk kell a elemet, amely a jelöléssel InlineArrayAttributevan megjelölve.

Érintett API-k