Используйте int для проверки, если ниже 0.uint в c # оборачивается огромным числом, когда оно опускается ниже 0, это на всех языках программирования.
Вы можете сделать это следующим образом
uint i = 0; i = checked(i - 1);
Это выдаст System.OverflowException.Хотя он не останется равным нулю, по крайней мере, вы будете уверены, что переполнения не произошло.
System.OverflowException
Я просто использую обычный int вместо uint, и проверяю, решена ли его проблема <0 ... </p>