检查关键字以检查c#中指定的位数

时间:2011-04-28 08:37:02

标签: c# bit-manipulation

我们可以使用C#中的check来检查特定位数的溢出,例如25,30等。

int A = 0;
int B = 1000;

checked 
{
   A += 1000000; 
   B = B * A; 
}

例如,在上面的例子中,可以检查A是否有27位溢出。

1 个答案:

答案 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
}