我们可以使用C#中的check来检查特定位数的溢出,例如25,30等。
int A = 0;
int B = 1000;
checked
{
A += 1000000;
B = B * A;
}
例如,在上面的例子中,可以检查A是否有27位溢出。
答案 0 :(得分:1)
不,C#中没有任何支持。
你最接近的可能就是编写自己的方法,该方法使用“普通”类型的溢出检查(int
为32位,long
为64等)然后 还对有效值施加了一些额外的限制。
理想情况下,我建议为此创建自己的包装类型,例如
public struct Int25
{
private readonly int value;
// Constructor etc, and operators which always make sure the result
// is within the appropriate range
}