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.
Aanbevolen actie
Auteurs van bibliotheken moeten zowel Equals(Object) als GetHashCode() op alle typen implementeren die zijn gemarkeerd met InlineArrayAttribute.