[] enum
{
constant1[=value1] [, constant2[=value2] [, ... ]]
}
Съответно value1, value2, и т.н. трябва да са цели числа.
За да добием по-ясна представа за току-що дадената дефиниция, нека разгледаме следния пример: нека имаме клас Coffee, който представя чаша кафе, която клиентите поръчват в някакво заведение:
В това заведение, клиентът може да поръча различно количество кафе, като кафе-машината има предефинирани стойности – "малко" – 100 ml, "нормално" – 150 ml и "двойно" – 300 ml. Следователно, можем да си декларираме един изброен тип CoffeSize, който има съответно три константи – Small, Normal и Double, на които ще присвоим съответстващите им количества:
CoffeeSize.cs
|
public enum CoffeeSize
{
Small=100, Normal=150, Double=300
}
|
Сега можем да добавим поле и свойство към класа Coffee, които отразяват какъв тип кафе си е поръчал даден клиент:
Coffee.cs
|
public class Coffee
{
public CoffeeSize size;
public Coffee(CoffeeSize size)
{
this.size = size;
}
public CoffeeSize Size
{
get { return size; }
}
}
|
Нека се опитаме да отпечатаме стойностите на количеството кафе за едно нормално кафе и за едно двойно:
static void Main()
{
Coffee normalCoffee = new Coffee(CoffeeSize.Normal);
Coffee doubleCoffee = new Coffee(CoffeeSize.Double);
Console.WriteLine("The {0} coffee is {1} ml.",
normalCoffee.Size, (int)normalCoffee.Size);
Console.WriteLine("The {0} coffee is {1} ml.",
doubleCoffee.Size, (int)doubleCoffee.Size);
}
|
Како компилираме и изпълним този метод, ще бъде отпечатано следното:
The Normal coffee is 150 ml.
The Double coffee is 300 ml.
|
Употреба на изброените типове
Основната цел на изброените типове е да заменят числените стойности, които бихме използвали, ако не съществуваха изброените типове. По този начин, кодът става по-изчистен и по-лесен за четене.
Друго много важно приложение на изброените типове е принудата от страна на компилатора да бъдат използвани константите от изброения тип, а не просто числа. По този начин ограничаваме максимално бъдещи грешки в кода. Например, ако използваме променлива от тип int вместо от изброен тип и набор константи за валидните стойности, нищо не пречи да присвоим на променливата примерно -6723.
За да стане по-ясно, нека разгледаме следния пример: да създадем клас, който представлява калкулатор за пресмятане на цената на всеки от видовете кафе, които се предлагат в заведението:
Сподели с приятели: |