title: Why can't I get the count of enums during compile time?
body: <p>I have asked <a href="https://stackoverflow.com/q/36432747/1889720">How can I get the number of enums as a constant?</a>, and I found out that I cannot get the count of enums during compile time, because C# uses reflection to do so.</p>
  
  <p>I read <a href="https://stackoverflow.com/q/37628/1889720">What is reflection and why is it useful?</a>, so I have a very basic understanding of reflection.</p>
  
  <p>To get the count of enums, I can use <code>Enum.GetNames(typeof(Item.Type)).Length;</code>, and this happens during runtime using reflection.</p>
  
  <p>I don't see any runtime knowledge needed to get the count of enums, because as far as I know, the count of enums cannot be changed during runtime.</p>
  
  <p>Why does C# have to use reflection to get the count of enums? Why can't it do so during compile time?</p>