C# Language Enum

30% OFF - 9th Anniversary discount on Entity Framework Extensions until December 15 with code: ZZZANNIVERSARY9


An enum can derive from any of the following types: byte, sbyte, short, ushort, int, uint, long, ulong. The default is int, and can be changed by specifying the type in the enum definition:

public enum Weekday : byte { Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5 }

This is useful when P/Invoking to native code, mapping to data sources, and similar circumstances. In general, the default int should be used, because most developers expect an enum to be an int.


  • enum Colors { Red, Green, Blue } // Enum declaration
  • enum Colors : byte { Red, Green, Blue } // Declaration with specific type
  • enum Colors { Red = 23, Green = 45, Blue = 12 } // Declaration with defined values
  • Colors.Red // Access an element of an Enum
  • int value = (int)Colors.Red // Get the int value of an enum element
  • Colors color = (Colors)intValue // Get an enum element from int


An Enum (short for "enumerated type") is a type consisting of a set of named constants, represented by a type-specific identifier.

Enums are most useful for representing concepts that have a (usually small) number of possible discrete values. For example, they can be used to represent a day of the week or a month of the year. They can be also be used as flags which can be combined or checked for, using bitwise operations.

Got any C# Language Question?