title: Can I avoid casting an enum value when I try to use or return it?
body: <p>If I have the following enum:</p>
  
  <pre><code>public enum ReturnValue{
      Success = 0,
      FailReason1 = 1,
      FailReason2 = 2
      //Etc...
  }
  </code></pre>
  
  <p>Can I avoid casting when I return, like this:</p>
  
  <pre><code>public static int main(string[] args){
      return (int)ReturnValue.Success;
  }
  </code></pre>
  
  <p>If not, why isn't an enum value treated as an int by default?</p>