在算术溢出时获取最大值
Get max value on arithmethic overflow
是否有内置方法在算术溢出时获取最大值?
这是我需要的:
var val = byte.MaxValue + 1;
//should be rounded down to byte.MaxValue
MyByteProperty = val;
P.S。我知道我可以通过将其包装为 checked
表达式作为 来做到这一点,我的问题是语言或 BCL 中是否有内置方式。
有checked
和unchecked
关键字,表示溢出时是否抛出异常:
try
{
MyByteProperty = checked(byte.MaxValue + 1);
}
catch (System.OverflowException e)
{
MyByteProperty = byte.MaxValue;
}
是否有内置方法在算术溢出时获取最大值?
这是我需要的:
var val = byte.MaxValue + 1;
//should be rounded down to byte.MaxValue
MyByteProperty = val;
P.S。我知道我可以通过将其包装为 checked
表达式作为
有checked
和unchecked
关键字,表示溢出时是否抛出异常:
try
{
MyByteProperty = checked(byte.MaxValue + 1);
}
catch (System.OverflowException e)
{
MyByteProperty = byte.MaxValue;
}