位操作-检查c#中指定位数的检查关键字
本文关键字:检查 定位 关键字 位操作 | 更新日期: 2023-09-27 17:54:03
我们可以在c#中使用checked来检查特定位数的溢出吗,比如25,30等
int A = 0;
int B = 1000;
checked
{
A += 1000000;
B = B * A;
}
例如,在上面的例子中,可以检查A是否有27位溢出
不,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
}