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.
Zalecana akcja
Autorzy bibliotek powinni zaimplementować zarówno i Equals(Object) GetHashCode() na wszystkich typach oznaczonych jako InlineArrayAttribute.