Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Сдвиговые операции в общей математике теперь имеют согласованное поведение во всех встроенных целочисленных типах.
Предыдущее поведение
Ранее поведение при использовании универсальной математики для выполнения сдвига на T могло отличаться в зависимости от типа. В некоторых случаях оно соответствующим образом маскировало величину сдвига на sizeof(T) - 1. И в других случаях маскировка не была. Это означало, что "чрезмерный сдвиг" (например, сдвиг byte на 8) может привести к различным результатам, чем ожидалось.
Новое поведение
Реализации были обновлены, чтобы маскировать величину сдвига при необходимости, чтобы обеспечить согласованное поведение во всех встроенных целочисленных типах и поведение, задокументированное интерфейсом System.Numerics.IShiftOperators<TSelf,TOther,TResult>.
Представленная версия
.NET 10
Тип изменения, нарушающего совместимость
Причина изменения
Поведение отличается от поведения, разработанного из-за разницы в том, как маскирование работает для небольших целых типов в C#.
Рекомендуемое действие
Обновите любой код, основанный на предыдущем несогласованном поведении, чтобы обеспечить работу с новым согласованным поведением.
Затронутые API
operator <<operator >>-
operator >>>дляbyte,char,sbyte,shortиushortпри использовании с помощью обобщённой математики, для которой требуетсяT, ограниченныйwhere T : IShiftOperators<T, int, T>или аналогичный интерфейсу.