Кто-нибудь находил странным, что контекст по умолчанию для uint и ulong не проверяется, а не проверяется, учитывая, что они предназначены для представления значений, которые никогда не могут быть отрицательными?
Так что, если какой-то код пытается нарушить это ограничение, мне кажется, что естественным и предпочтительным поведением будет генерировать исключение, а не возвращать максимальное значение (что может легко оставить важные фрагменты данных в недопустимом состоянии и невозможно вернуть ..).
Существует ли существующий атрибут, который можно применить к любому классу / сборке, чтобы он всегда выполнял арифметические операции в проверенном контексте? Я думал о том, чтобы написать его сам (как аспект, использующий PostSharp), но было бы здорово, если бы он уже был.
Большое спасибо,