Enumerations
Enumerated type (also called enumeration or enum) is a data type consisting of a set of named values. A variable that has been declared as having an enumerated type can be assigned any of the enumerators as a value. Enumerations make the code more readable.using System; class CSharpApp { enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } static void Main() { Days day = Days.Monday; if (day == Days.Monday) { Console.WriteLine("It is Monday"); } Console.WriteLine(day); foreach(int i in Enum.GetValues(typeof(Days))) Console.WriteLine(i); } }In our code example, we create an enumeration for week days.
enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }The enumeration is created with a
enum
keyword.
The Monday, Tuesday ... barewords store in fact numbers 0..6.
Days day = Days.Monday;We have a variable called day, which is of enumerated type Days. It is initialized to Monday.
if (day == Days.Monday) { Console.WriteLine("It is Monday"); }This code is more readable than if comparing a day variable to some number.
Console.WriteLine(day);This line prints Monday to the console.
foreach(int i in Enum.GetValues(typeof(Days))) Console.WriteLine(i);This loop prints 0..6 to the console. We get underlying types of the enum values. For a computer, an enum is just a number. The
typeof
is an operator
used to obtain the System.Type object for a type. It is needed
by the GetValues()
method. This method returns an
array of the values of in a specified enumeration. And the
foreach
keyword goes through the array, element
by element and prints them to the terminal.
We further work with enumerations.
using System; class CSharpApp { public enum Seasons : byte { Spring = 1, Summer = 2, Autumn = 3, Winter = 4 } static void Main() { Seasons s1 = Seasons.Spring; Seasons s2 = Seasons.Autumn; Console.WriteLine(s1); Console.WriteLine(s2); } }Seasons can be easily used as enums. We can specify the underlying type for the enum plus we can give exact values for them.
public enum Seasons : byte { Spring = 1, Summer = 2, Autumn = 3, Winter = 4 }With a colon and a data type we specify the underlying type for the enum. We also give each member a specific number.
Console.WriteLine(s1); Console.WriteLine(s2);These two lines print the enum values to the console.
$ ./seasons.exe Spring AutumnOutput.
No comments:
Post a Comment