Это похоже на глупый вопрос, но я не вижу ответа. У меня есть UInt64, который должен иметь максимальное значение
UInt64.MaxValue 18446744073709551615
Однако, когда я пытаюсь назначить небольшое число, я получаю эту ошибку переполнения "Переполнение операции во время компиляции в режиме проверки". Если я упакую его в "непроверенный" блок, тогда он компилируется и запускается так, как будто эта переменная равна нулю:
UInt64 value1 = 1073741824 * 8; // Compile error
UInt64 value2 = 8589934592; // Actual value - no error
Почему это происходит?