title: Casting an out-of-range number to an enum in C# does not produce an exception
body: <p>The following code does not produce an exception but instead passes the value 4 to tst. Can anyone explain the reason behind this? </p>
  
  <pre><code> public enum testing
   { 
      a = 1,
      b = 2,
      c = 3
   }
  
  testing tst = (testing)(4);
  </code></pre>