Бөлісу құралы:


Значение по умолчанию Equals() и GetHashCode() исключение для типов, помеченных как InlineArrayAttribute

Поведение по умолчанию для Equals(Object)GetHashCode() типов, помеченных как по умолчанию, InlineArrayAttribute теперь вызывает исключениеNotSupportedException. Авторы библиотеки должны переопределить эти два метода, если они, как ожидается, не будут вызываться.

Прежнее поведение

Ранее реализации по умолчанию использовали только поле заполнителя ref при вычислении равенства или хэш-кода.

Новое поведение

Начиная с .NET 9, NotSupportedException всегда создается из реализаций Equals(Object) по умолчанию и GetHashCode() при InlineArrayAttribute применении к типу.

Представленные версии

.NET 9( предварительная версия 6)

Тип критического изменения

Это изменение поведения.

Причина изменения

Текущее поведение неверно для определения равенства и вычисления хэш-кода, и пользователи приводят к ложному чувству правильности при вызове этих функций.

Авторы библиотеки должны реализовывать как, так Equals(Object) и GetHashCode() для всех типов, помеченных как .InlineArrayAttribute

Затронутые API