在算术溢出时获取最大值

Get max value on arithmethic overflow

是否有内置方法在算术溢出时获取最大值?

这是我需要的:

var val = byte.MaxValue + 1;

//should be rounded down to byte.MaxValue
MyByteProperty = val;

P.S。我知道我可以通过将其包装为 checked 表达式作为 来做到这一点,我的问题是语言或 BCL 中是否有内置方式。

checkedunchecked关键字,表示溢出时是否抛出异常:

try
{
    MyByteProperty = checked(byte.MaxValue + 1);
}
catch (System.OverflowException e)
{
    MyByteProperty = byte.MaxValue;
}