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