Why does my implementation of get / set give a stack error?
<p>I am trying the following in C#:</p>

<pre><code>public class Reference : AuditableTable
    {
        [Range(0, 99, ErrorMessage = "{0} must be between {1} and {2}")]
        [DisplayName("Order")]
        public int Order {
                get { return Order; }
                set {
                    if ((value &lt; 0) || (value &gt; 99)) {
                        throw new Exception(string.Format("{0} must be between 0 and 99", value.ToString()));
                    } else {
                        Order = value;
                    }
                }
            }
</code></pre>

<p>Can someone help explain why this would give a stack overflow error when reading?</p>
