What is main use of Enumeration in c#?
Edited:- suppose I want to compare the string variable with the any enumeration item then how i can do this in c# ?
Часто вы обнаруживаете, что у вас есть что-то - данные, классификация, что угодно, - что лучше всего выразить как одно из нескольких дискретных состояний, которые могут быть представлены целыми числами. Классический пример - месяцы в году. Мы хотим, чтобы месяцы года можно было представить как в виде строк («19 августа 2010 г.»), так и в виде чисел («19 августа 2010 г.»). Enum
предоставляет краткий способ присвоения имен группе целых чисел, поэтому мы можем использовать простые циклы по целым числам для перемещения по месяцам.
Определение в MSDN - хорошее место для начала.
Тип перечисления (также называемый перечисление или перечисление) обеспечивает эффективный способ определения набора именованных интегральные константы, которые могут быть присвоено переменной.
Основное преимущество этого состоит в том, что на константы можно ссылаться согласованным, выразительным и типобезопасным способом.
Возьмем, к примеру, этот очень простой класс Employee
с конструктором:
Вы можете сделать это так:
public class Employee
{
private string _sex;
public Employee(string sex)
{
_sex = sex;
}
}
Но теперь вы полагаетесь, что пользователи вводят только правильное значение для этой строки .
Используя перечисления, вы можете вместо этого иметь:
public enum Sex
{
Male = 10,
Female = 20
}
public class Employee
{
private Sex _sex;
public Employee(Sex sex)
{
_sex = sex;
}
}
Это внезапно позволяет потребителям класса Employee использовать его намного проще:
Employee employee = new Employee("Male");
Становится:
Employee employee = new Employee(Sex.Male);
Есть два значения перечисления в C #.
Перечисление (существительное) - это набор именованных значений. Пример:
public enum Result {
True,
False,
FileNotFound
}
Перечисление (существительная форма глагола enumerate) - это когда вы проходите по элементам в коллекции.
Интерфейс IEnumerable
используется классами, которые обеспечивают возможность перечисления. Массив - простой пример такого класса. Другой пример - то, как LINQ использует его для возврата результатов в виде перечислимых коллекций.
Если вы хотите сравнить строку со значением перечисления, вам нужно либо проанализировать строку до типа перечисления:
if ((Result)Enum.Parse(typeof(Result), theString) == Result.True) ...
, либо преобразовать значение перечисления в строку:
if (theString == Result.True.ToString()) ...
(будьте осторожны как вы сравниваете значения, в зависимости от того, хотите ли вы совпадение с учетом регистра или нет.)
Если вы хотите перечислить коллекцию и найти строку, вы можете использовать команду foreach
:
foreach (string s in theCollection) {
if (s == theString) {
// found
}
}
] Тип перечисления (также называемый перечислением или перечислением) предоставляет эффективный способ определения набора именованных интегральных констант, которые могут быть присвоены переменной.