Udostępnij za pośrednictwem


Domyślna Equals() i GetHashCode() zgłaszana dla typów oznaczonych za pomocą polecenia InlineArrayAttribute

Domyślnym zachowaniem dla Equals(Object) typów oznaczonych za pomocą InlineArrayAttribute polecenia i GetHashCode() jest teraz zgłaszanie wartości NotSupportedException. Autorzy bibliotek powinni zastąpić te dwie metody, jeśli oczekuje się, że nie zostaną one rzucone.

Poprzednie zachowanie

Wcześniej domyślne implementacje używały pola zastępczego ref tylko podczas obliczania równości lub kodu skrótu.

Nowe zachowanie

Począwszy od platformy .NET 9, NotSupportedException element jest zawsze zgłaszany z domyślnych implementacji dla Equals(Object) i GetHashCode() , gdy InlineArrayAttribute jest stosowany do typu.

Wprowadzona wersja

.NET 9 (wersja zapoznawcza 6)

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Bieżące zachowanie jest nieprawidłowe zarówno w przypadku określania równości, jak i obliczania kodu skrótu, a użytkownicy są kierowani do fałszywego poczucia poprawności podczas wywoływania tych funkcji.

Autorzy bibliotek powinni zaimplementować zarówno i Equals(Object) GetHashCode() na wszystkich typach oznaczonych jako InlineArrayAttribute.

Dotyczy interfejsów API