使用 int 测试是否低于 0 . C# 中的 uint 一旦低于 0,就会换行到一个巨大的数字,这在所有编程语言中都是如此。
你可以这样做
uint i = 0;
i = checked(i - 1);
这将抛出System.OverflowException
.虽然它不会保持零,但至少你会确定没有溢出发生。
我只使用普通的int而不是uint,并检查它是否<0... 问题已解决