C# Overflow not Working? How to enable Overflow Checking?

后端 未结 1 1016
情歌与酒
情歌与酒 2020-12-18 20:40

I was working around with C# and noticed that when I had a very large integer and attempted to make it larger. Rather that throwing some type of overflow error, it simply se

相关标签:
1条回答
  • 2020-12-18 21:22

    You can use the following steps to enable Arithmetic Overflow/Underflow checking in Visual Studio :

    1. Right click on your project in the Solution Explorer and select Properties.
    2. On the Build tab, click the Advanced button. (It's towards the bottom)
    3. Check the "Check for arithmetic overflow / underflow" check-box.

    This will throw a System.OverflowException when the overflow occurs rather than it's usual operation of changing the value to a minimum value.

    Without Arithmetic Overflow/Underflow enabled:

    int test = int.MaxValue;
    test++;
    //Test should now be equal to -2,147,483,648 (int.MinValue)
    

    With Arithmetic Overflow/Underflow enabled:

    int test = int.MaxValue;
    test++;
    //System.OverflowException thrown
    

    Using a checked block:

    checked
    {
        int test = int.MaxValue;
        test++;
        //System.OverflowException thrown
    }
    

    The documentation for checked is available here. (Thanks to Sasha for reminding me about it.)

    0 讨论(0)
提交回复
热议问题