Когда вы пытаетесь объявить неподписанную переменную в С#.NET со значением вне своего диапазона значений, она помечена как ошибка компилятора, но если вы производите отрицательное значение во время выполнения и назначаете его этой переменной во время выполнения, значение обертывает.
uint z = -1; // Will not compile
uint a = 5;
uint b = 6;
uint c = a - b; // Will result in uint.MaxValue
Есть ли веская причина, почему переменные без знака обертываются в такой ситуации, а не бросают исключение?
Спасибо.