 <p>Here is the answer, at least partially, from <a href="http://msdn.microsoft.com/en-us/library/sbbt4032.aspx" rel="nofollow">MSDN</a>:</p> <blockquote> <p>Every enumeration type has an underlying type, which can be any integral type except char. The default underlying type of enumeration elements is int. To declare an enum of another integral type, such as byte, use a colon after the identifier followed by the type, as shown in the following example.</p> <p>Copyenum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; </p> <p>The approved types for an enum are byte, sbyte, short, ushort, int, uint, long, or ulong.</p> </blockquote>