C# enum

Enumeration means the action of numbering elements one by one.

In C#, enumeration is done using the keyword enum. C# enum defines a list of elements assigned with an ordered set of integer values.

C# enum is a value type datatype. It is used to store named integer constants.

The syntax to declare an enum is shown below:

</>
Copy
 enum EnumName{
     CONSTANT_NAME_1,
     CONSTANT_NAME_2,
     CONSTANT_NAME_N
 }

where EnumName is the name given to this enum and with which we can reference.

CONSTANT_NAME_1CONSTANT_NAME_2, . . etc., are the constants inside the enum.

Example 1 – C# enum

In the following example, we use enum named Operation to store constants that represent mathematical operations.

This example demonstrates the declaration of Enum, initializing a variable with value of this Enum type, and then accessing the elements of this Enum.

Program.cs

</>
Copy
using System;

namespace CSharpExamples {
    enum Operation{
        ADDITION,
        SUBTRACTION,
        MULTIPLICATION
    }
    class Program {
        static void Main(string[] args) {
            int a = 10;
            int b = 4;
            int result=0;

            Operation op = Operation.ADDITION;

            if(op==Operation.ADDITION){
                result = a+b;
            } else if(op==Operation.SUBTRACTION){
                result = a-b;
            } else if(op==Operation.MULTIPLICATION){
                result = a*b;
            }
            Console.WriteLine("Result is : "+result);
        }
    }
}

Output

Result is : 14

Let us analyse this example.

To define an enum named Operations, we used the following code snippet.

</>
Copy
 enum Operation{
     ADDITION,
     SUBTRACTION,
     MULTIPLICATION
 }

If we do not specify any value to the named constant, the first constant will take value of 0, and the rest would be incremented one by one.

So, here ADDITION = 0, SUBTRACTION = 1 and MULTIPLICATION = 2.

Inside the program, we defined a variable of type Operation and assigned a value to it.

</>
Copy
 Operation op = Operation.ADDITION;

Example – C# Enum – Print enum values

As we already mentioned, enum named constants are integers. In this example, we will print those enums and see their values.

Program.cs

</>
Copy
using System;

namespace CSharpExamples {
    enum Operation{
        ADDITION,
        SUBTRACTION,
        MULTIPLICATION
    }
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Operation.ADDITION (without parsing to int) : "+Operation.ADDITION);
            Console.WriteLine("Operation.ADDITION : "+(int)Operation.ADDITION);
            Console.WriteLine("Operation.SUBTRACTION : "+(int)Operation.SUBTRACTION);
            Console.WriteLine("Operation.MULTIPLICATION : "+(int)Operation.MULTIPLICATION);
        }
    }
}

Output

Operation.ADDITION (without parsing to int) : ADDITION
Operation.ADDITION : 0
Operation.SUBTRACTION : 1
Operation.MULTIPLICATION : 2

The value without parsing prints the named constant as is. If we type cast the enum constant to integer, we get their respective integer values.

Example – C# Enum – With values assigned to named constants

You can provide your own integer values to the named constants in the enum.

Program.cs

</>
Copy
using System;

namespace CSharpExamples {
    enum Operation{
        ADDITION = 14,
        SUBTRACTION = 17,
        MULTIPLICATION = 27
    }
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Operation.ADDITION (without parsing to int) : "+Operation.ADDITION);
            Console.WriteLine("Operation.ADDITION : "+(int)Operation.ADDITION);
            Console.WriteLine("Operation.SUBTRACTION : "+(int)Operation.SUBTRACTION);
            Console.WriteLine("Operation.MULTIPLICATION : "+(int)Operation.MULTIPLICATION);
        }
    }
}

Output

Operation.ADDITION (without parsing to int) : ADDITION
Operation.ADDITION : 14
Operation.SUBTRACTION : 17
Operation.MULTIPLICATION : 27

Example – C# Enum – With only first named constant assigned a value

If you assign a value only to the first constant, the rest of the constants will take a value incremented of its previous constant’s value.

Program.cs

</>
Copy
using System;

namespace CSharpExamples {
    enum Operation{
        ADDITION = 34,
        SUBTRACTION,
        MULTIPLICATION
    }
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Operation.ADDITION : "+(int)Operation.ADDITION);
            Console.WriteLine("Operation.SUBTRACTION : "+(int)Operation.SUBTRACTION);
            Console.WriteLine("Operation.MULTIPLICATION : "+(int)Operation.MULTIPLICATION);
        }
    }
}

Output

Operation.ADDITION : 34
Operation.SUBTRACTION : 35
Operation.MULTIPLICATION : 36

Conclusion

In this C# Tutorial, we learned what an enum is in C#, and how to define an enum, access an enum, and other important points about C# enum with the help of examples.