Используйте unchecked
, когда:
- Вы хотите выразить константу через переполнение (это может быть полезно при указании битовых комбинаций)
- Вы хотите, чтобы арифметика переполнялась, не вызываяerror
Последнее полезно при вычислении хеш-кода - например, в Noda Time проект построен с проверенной арифметикой для виртуального всего, кроме генерации хеш-кода.При вычислении хеш-кода вполне нормально возникновение переполнения, и это нормально, потому что нам не важно, что результат будет число - мы просто хотим, чтобы он был битовым шаблоном, на самом деле.
Это просто очень распространенный пример, но могут быть и другие случаи, когда вы действительно счастливы, если MaxValue + 1
будет MinValue
.