About
In this code snippet, we will see how to use enumerations in C#.
An enum is a data type. To create an enumeration you have to give it a name and define a list of constants that will be available when that enumeration is referenced.
In this code example, we will simulate a key being pressed. The getKey() method will return the key that was pressed. We could just return a string like so “left“. But making an enum with predefined values is much less error-prone than using a string. A misspelled string won’t get caught at compile time meanwhile if you misspell or chose a nonexisting enum an error will occur at compile time.
Let’s have a look at the code below.
Code:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
using System;
namespace Enumeration
{
class Program
{
static void Main(string[] args)
{
//Simulate the key being pressesd.
KeyPressed key = getKey();
//Check what key was pressed.
showPressedKey(key);
Console.ReadLine();
}
public static void showPressedKey(KeyPressed key)
{
//If we are unsure what type of enum was given to us we can use this useful bit of code
//to check weather a certain value is defined in our enum type.
if (Enum.IsDefined(typeof(KeyPressed), key))
{
//If so this code executes.
if (KeyPressed.up == key)
{
Console.WriteLine("The up arrow key was pressed.");
}
else if (KeyPressed.down == key)
{
Console.WriteLine("The down arrow key was pressed.");
}
else if (KeyPressed.left == key)
{
Console.WriteLine("The left arrow key was pressed.");
}
else if (KeyPressed.right == key)
{
Console.WriteLine("The right arrow key was pressed.");
}
}
else
{
//Otherwise tell us that the key is undefined.
Console.WriteLine("Undefined key!");
}
}
public static KeyPressed getKey()
{
return KeyPressed.left;
}
//Define the enum and all it's possible values.
public enum KeyPressed
{
up,
down,
left,
right
}
}
}
using System;
namespace Enumeration
{
class Program
{
static void Main(string[] args)
{
//Simulate the key being pressesd.
KeyPressed key = getKey();
//Check what key was pressed.
showPressedKey(key);
Console.ReadLine();
}
public static void showPressedKey(KeyPressed key)
{
//If we are unsure what type of enum was given to us we can use this useful bit of code
//to check weather a certain value is defined in our enum type.
if (Enum.IsDefined(typeof(KeyPressed), key))
{
//If so this code executes.
if (KeyPressed.up == key)
{
Console.WriteLine("The up arrow key was pressed.");
}
else if (KeyPressed.down == key)
{
Console.WriteLine("The down arrow key was pressed.");
}
else if (KeyPressed.left == key)
{
Console.WriteLine("The left arrow key was pressed.");
}
else if (KeyPressed.right == key)
{
Console.WriteLine("The right arrow key was pressed.");
}
}
else
{
//Otherwise tell us that the key is undefined.
Console.WriteLine("Undefined key!");
}
}
public static KeyPressed getKey()
{
return KeyPressed.left;
}
//Define the enum and all it's possible values.
public enum KeyPressed
{
up,
down,
left,
right
}
}
}
using System; namespace Enumeration { class Program { static void Main(string[] args) { //Simulate the key being pressesd. KeyPressed key = getKey(); //Check what key was pressed. showPressedKey(key); Console.ReadLine(); } public static void showPressedKey(KeyPressed key) { //If we are unsure what type of enum was given to us we can use this useful bit of code //to check weather a certain value is defined in our enum type. if (Enum.IsDefined(typeof(KeyPressed), key)) { //If so this code executes. if (KeyPressed.up == key) { Console.WriteLine("The up arrow key was pressed."); } else if (KeyPressed.down == key) { Console.WriteLine("The down arrow key was pressed."); } else if (KeyPressed.left == key) { Console.WriteLine("The left arrow key was pressed."); } else if (KeyPressed.right == key) { Console.WriteLine("The right arrow key was pressed."); } } else { //Otherwise tell us that the key is undefined. Console.WriteLine("Undefined key!"); } } public static KeyPressed getKey() { return KeyPressed.left; } //Define the enum and all it's possible values. public enum KeyPressed { up, down, left, right } } }