Delen via


Standaard Equals() en GetHashCode() gooi voor typen gemarkeerd met InlineArrayAttribute

Het standaardgedrag voor Equals(Object) en GetHashCode() op typen die zijn InlineArrayAttribute gemarkeerd, is nu om een NotSupportedException. Auteurs van bibliotheken moeten deze twee methoden overschrijven als ze naar verwachting niet worden gegooid.

Vorig gedrag

Voorheen gebruikten de standaard implementaties alleen het veld tijdelijke aanduidingen ref bij het berekenen van gelijkheid of de hashcode.

Nieuw gedrag

Vanaf .NET 9 wordt er altijd een NotSupportedException gegenereerd van de standaard implementaties voor Equals(Object) en GetHashCode() wanneer InlineArrayAttribute deze wordt toegepast op een type.

Versie geïntroduceerd

.NET 9 Preview 6

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Het huidige gedrag is onjuist voor het bepalen van gelijkheid en het berekenen van de hash-code, en gebruikers worden geleid tot een onjuist gevoel van juistheid bij het aanroepen van deze functies.

Auteurs van bibliotheken moeten zowel Equals(Object) als GetHashCode() op alle typen implementeren die zijn gemarkeerd met InlineArrayAttribute.

Betrokken API's