title: why adding 1 to byte.MaxValue results in 256 not an overflow
body: <p>I have this simple piece of code in C# to show overflow error when adding 1 to MaxValue of types.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace ConsoleApp1
  {
      class Program
      {
          static void Main(string[] args)
          {
              byte a = byte.MaxValue;
              byte b = 1;
              Console.WriteLine("Max+1 is : {0}", a+b);
  
              Console.ReadLine();
          }
      }
  }
  </code></pre>
  
  <p>But instead of overflow and a wrong result, it generates correct value: 256
  Why? 
  While maximum value of byte variable in C# is 255.
  Am I wrong?</p>