F # позволяет использовать проверенную арифметику, открывая модуль Checked
, который переопределяет стандартные операторы для проверки операторов, например:
open Checked
let x = 1 + System.Int32.MaxValue // overflow
приведет к исключению арифметического переполнения.
Но что, если я хочу использовать проверенную арифметику в небольшом объеме, например, С# с ключевым словом Checked
:
int x = 1 + int.MaxValue; // ok
int y = checked { 1 + int.MaxValue }; // overflow
Как я могу контролировать область переопределения операторов, открыв модуль Checked
или уменьшив его насколько возможно?