Understanding Structures and Enumeration using C#

 

Structures are basically value types. They are defined by using the struct keyword. You can access the variables inside a structure by creating an object of the structure.

The only difference is that you don’t have to use the syntax for creating an object from a class, for structures. Listing 1 explains this concept clearly.

Listing 1

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">using System; 
enum Employees:byte 
{ 
ok = 50,cancel = 100 
} 
struct Emp 
{ 
public Employees EM; 
public string id; 
} 
class Emptest 
{ 
public static void Main() 
{ 
Emp E; 
E.EM = Employees.cancel; 
E.id = &quot;002&quot;; 
Console.WriteLine(E.EM); 
Console.WriteLine(E.id); 
} 
}

After executing the above program, run the ILDASM tool and observe the exe file. You can be able to view the compilation process of each and every line of the code.

Enumerations

Enumerations are a set of names for the corresponding numerical values. Normally, we use to apply the code as shown below:

Listing 2

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">case 1: 
Console.WriteLine(“OK”); 
break; 
case 2: 
Console.WriteLine(“CANCEL”); 
break;

Instead of 1 and 2 as in the above code, you can use meaningful constants like ok and cancel. This can be achieved through Enumerations.

Enumerations are defined using enum keyword as shown in Listing 3:

Listing 3

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">enum Employees
{ 
OK; // 
CANCEL; 
} 

The Employees enumeration defines two constants, OK and CANCEL. Each constant is having its own numerical value. By default numbering system starts from 0. However, you can change the order as shown in Listing 4:

READ  Microsoft Azure Government Adds Isolation and Security Features

Listing 4

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">enum Employees
{ 
OK = 50; // 
CANCEL = 100; 
} 


Also the data type for each constant in an enumeration is integer by default. But you can change the type to byte, long etc as shown in Listing 5:

Listing 5

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">enum Employees : byte
{ 
OK = 50; 
CANCEL = 100;
} 


The Listing given below illustrates how to apply the Employees enumeration in a C# program.

Listing 6

<pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px">using System; 
enum Employees
{ 
Instructors, 
Assistants, 
Counsellors 
} 
class Employeesenum 
{ 
public static void Display(Employees e) 
{ 
switch(e) 
{ 
case Employees.Instructors: 
Console.WriteLine(&quot;You are an Instructor&quot;); 
break; 
case Employees.Assistants: 
Console.WriteLine(&quot;You are one of the Assistants&quot;); 
break; 
case Employees.Counsellors: 
Console.WriteLine(&quot;You are a counsellor&quot;); 
break; 
default:break; 
} 
} 
public static void Main(String[] args) 
{ 
Employees emp; 
emp = Employees.Counsellors; 
Display(emp); 
} 
}

C# enumerations derive from System.Enum. Table 1 explains some of the important methods and properties of this class.

Method Name

GetUnderlyingType() –> Returns the data type used to represent the enumeration.

Format() –> Returns the string associated with the enumeration.

GetValues() –> Returns the members of the enumeration.

Property Name

IsDefined() –> Returns whether a given string name is a member of the current enumeration.

Leave a Reply

Your email address will not be published.