check 关键字,用于检查 C# 中指定位数
我们能否在 C# 中使用 check 来检查特定位数的溢出,例如 25、30 等。
int A = 0;
int B = 1000;
checked
{
A += 1000000;
B = B * A;
}
例如,在上面的示例中,是否可以检查 A 是否有 27 位溢出。
Can we use checked in C# for checking overflow for a particular number of bits, like say 25, 30, etc.
int A = 0;
int B = 1000;
checked
{
A += 1000000;
B = B * A;
}
For example, in the above example, can A be checked for 27 bits overflow.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,C# 中不支持类似的功能。
最接近的可能是编写自己的方法,该方法使用“正常”类型的溢出检查(
int
为 32 位,long
等为 64 位),然后还对有效值施加了一些额外的限制。理想情况下,我建议为此创建您自己的包装类型,例如
No, there's nothing like that supported in C#.
The closest you could probably come would be to write your own method which used the "normal" type of overflow checking (32 bits for
int
, 64 forlong
etc) and then also imposed some extra restrictions on the valid values.Ideally, I'd suggest creating your own wrapper type for this, e.g.