什么';C#中算术溢出的预防和处理方法?

什么';C#中算术溢出的预防和处理方法?,c#,C#,C#中算术溢出的预防和处理方法是什么 以及将算术溢出(逻辑错误)转换为运行时错误 我想要至少3种方法来解决这个问题 您可以使用checked int z = 0; try { // The following line raises an exception because it is checked. z = checked(maxIntValue + 10); } catch (System.OverflowException

C#中算术溢出的预防和处理方法是什么

以及将算术溢出(逻辑错误)转换为运行时错误

我想要至少3种方法来解决这个问题

您可以使用checked

int z = 0;
    try
    {
        // The following line raises an exception because it is checked.
        z = checked(maxIntValue + 10);
    }
    catch (System.OverflowException e)
    {
        // The following line displays information about the error.
        Console.WriteLine("CHECKED and CAUGHT:  " + e.ToString());
    }
    // The value of z is still 0. 
    return z;
请参见中的示例和说明

按照OP的要求,更多的方法可以做到这一点:

您还可以使用
Int32.MaxValue
(对于int算术)检查某个操作是否可能导致溢出,然后抛出您自己的异常或
System.OverflowException


类似于
if((Int32.MaxValue-x)

我真的希望
选中
得到更多的口惠。这是一个惊人的特点。我需要更多的方法。“勾选”是有用的,但还不够。@NasimVakili你能再含糊一点吗?!你到底在找什么?这是正确的答案,你为什么需要别人?这是家庭作业吗?@JonathonReinhart:)是的,我是编程新手,也是C#并搜索了它,找到了checked和GetHashCode方法,但我需要任何方法来解决或防止类似问题。是的,这是一个家庭作业。@NasimVakili:
GetHashCode
方法与此问题无关。对这个问题唯一合理的答案是3dd发布的一个。(这仍然不能解决问题,只是检测到它:你仍然不能实际添加数字。)