CSharp - enum value storage type


Can we specify an alternative integral type to an enum like this?

enum Values :byte{ val1 , val2, val3 };

Yes, it is perfect.

Will the code compile?

enum simpleColors : string
    red, green, yellow,black, blue,pink

No. Only sbyte, short, ushort, int, uint, long, and ulong are allowed.

We can check the default storage type of an enum?


using System;
class Program/*from ww w . j  a v  a 2 s  .  c o  m*/
    enum Values { val1, val2 = 26, val3 = 12, val4, val5 };
    enum TrafficLight : byte
        red, green = (int)Values.val3, yellow
    static void Main(string[] args)
        Console.WriteLine("Default  Storage type of Values is {0}", Enum.GetUnderlyingType(typeof(Values)));//System.Int32
        Console.WriteLine("Default  Storage type of TrafficLight is {0}", Enum.GetUnderlyingType(typeof(TrafficLight)));//System.Byte


Related Topic