Sdílet prostřednictvím


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.

Autoři knihovny by měli implementovat oba Equals(Object) i GetHashCode() pro všechny typy označené .InlineArrayAttribute

Ovlivněná rozhraní API