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