Výchozí Equals()
a GetHashCode()
vyvolání pro typy označené pomocí InlineArrayAttribute
Výchozí chování pro Equals(Object) typy označené pomocí a GetHashCode() u typů, které InlineArrayAttribute jsou označeny, je nyní vyvolán .NotSupportedException Autoři knihoven by měli tyto dvě metody přepsat, pokud se očekává, že se nedají vyvolat.
Předchozí chování
Výchozí implementace dříve používaly zástupné ref
pole pouze při výpočtu rovnosti nebo kódu hash.
Nové chování
Počínaje rozhraním .NET 9 NotSupportedException je vždy vyvolán z výchozích implementací pro Equals(Object) a GetHashCode() kdy InlineArrayAttribute se použije na typ.
Zavedená verze
.NET 9 Preview 6
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Aktuální chování není správné jak při určování rovnosti, tak pro výpočet kódu hash a uživatelé při volání těchto funkcí vedou do nesprávného pocitu správnosti.
Doporučená akce
Autoři knihovny by měli implementovat oba Equals(Object) i GetHashCode() pro všechny typy označené .InlineArrayAttribute