У целых чисел появились явные методы расширения и усечения разрядности

01.04.2026

У целочисленных типов появились методы расширения и усечения до другой разрядности. Приведение по умолчанию и явное преобразование теперь различаются в сигнатуре метода.

Какая была путаница

Обычное приведение типа не сообщает, что произойдёт с полными разрядными числами. Перевод значения в более широкий тип даёт ожидаемый результат только при знаковом расширении; беззнаковое расширение — тоже. Но приведение к более узкому типу молча отбрасывает разряды, и узнать об этом можно только по факту.

Набор методов с проверкой и без закрывает оба случая явно: расширение, усечение с ошибкой, усечение с насыщением и усечение с проверкой.

Чем отличаются методы

Расширение всегда помещается, потому что результат шире исходного. Усечение — нет, и три варианта по-разному решают, что делать: вернуть ошибку, ограничить крайним значением или проверить заранее.

Все методы работают только в пределах одной знаковости. Переход между знаковым и беззнаковым — другая задача с другими правилами, и она вынесена отдельно.

Оригинал

add integer truncation and extension methods

Упоминаний: 1 · Просмотров: 2