Подтвердить что ты не робот

Каково основное использование Перечисления?

Каково основное использование Enumeration в С#?

Отредактировано: - Предположим, я хочу сравнить строковую переменную с любым элементом перечисления, а затем как я могу сделать это в С#?

4b9b3361

Ответ 1

Часто вы обнаружите, что у вас есть что-то - данные, классификация, что угодно - что лучше всего выражать как одно из нескольких дискретных состояний, которые могут быть представлены целыми числами. Классический пример - месяцы года. Мы хотели бы, чтобы месяцы года представлялись как строки ( "19 августа 2010 года" ), так и цифры ( "8/19/2010" ). Enum предоставляет сжатый способ присвоения имен целым числам, поэтому мы можем использовать простые циклы через целые числа для перемещения через месяцы.

Ответ 2

Определение в 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);

Ответ 3

Перечисления - это строго типизированные константы. Перечисления представляют собой специальные наборы именованных значений, которые все сопоставляются с набором чисел, обычно целыми числами. Они пригождаются, когда вы хотите иметь возможность выбирать между набором постоянных значений и с каждым возможным значением, относящимся к числу, они могут использоваться в самых разных ситуациях. Как вы увидите в нашем примере, перечисления определены выше классов, внутри нашего пространства имен. Это означает, что мы можем использовать перечисления из всех классов в одном и том же пространстве имен.

using System;

namespace ConsoleApplication1
{
    public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

    class Program
    {
        static void Main(string[] args)
        {
            Days day = Days.Monday;
            Console.WriteLine((int)day);
            Console.ReadLine();
        }
    }
}

Ответ 4

Тип перечисления (также называемый перечислением или enum) обеспечивает эффективный способ определения набора именованных интегральных констант, которые могут быть назначены переменной.

http://msdn.microsoft.com/en-us/library/cc138362.aspx

Ответ 5

В С# имеется два значения перечисления.

Перечисление (существительное) представляет собой набор именованных значений. Пример:

public enum Result {
  True,
  False,
  FileNotFound
}

Перечисление (именная форма перечисления глаголов) - это когда вы просматриваете элементы в коллекции.

Интерфейс IEnumerable<T> используется классами, которые обеспечивают возможность перечисления. Массив - простой пример такого класса. Другим примером является то, как LINQ использует его для возврата результатов в виде перечислимых коллекций.

Edit:

Если вы хотите сравнить строку с значением перечисления, вам либо нужно разобрать строку на тип перечисления:

if ((Result)Enum.Parse(typeof(Result), theString) == Result.True) ...

или преобразовать значение перечисления в строку:

if (theString == Result.True.ToString()) ...

(Будьте осторожны с тем, как вы сравниваете значения, в зависимости от того, хотите ли вы совпадать с ситуацией или нет.)

Если вы хотите перечислить коллекцию и искать строку, вы можете использовать команду foreach:

foreach (string s in theCollection) {
  if (s == theString) {
    // found
  }
}

Ответ 6

Перечисление (Enum) - это тип переменной. Мы можем найти этот тип переменной в C, С# и многих других языках. Основная идея для Enum заключается в том, что если у нас есть группа переменных целочисленного типа (по умолчанию), то вместо использования слишком больших значений int просто используйте Enum. Это эффективный способ. Предположим, вы хотите писать радужные цвета, тогда вы можете написать вот так:

const int Red = 1;
const int Orange = 2;
const int Yellow = 3;
const int Green = 4;
const int Blue = 5;
const int Indigo = 6;
const int Violet = 7;

здесь вы можете увидеть, что слишком много объявлений int. Если вы или ваша программа по ошибке меняете значение любого целочисленного varialbe, то есть Violet = 115 вместо 7, то это будет очень сложно отлаживать.

Итак, вот идет Enum. Вы можете определить Enum для любой группы целых чисел типа переменных. Для Enum вы можете написать свой код следующим образом:

enum rainBowColors
{
 red=1,
 orange=2,
 yellow=3,
 green,
 blue=8,
 indigo=8,
 violet=16) 
}; 

rainBowColors - это тип, и ему могут быть назначены только другие переменные того же типа. В С#/С++ вам нужно набирать casting, а в C вы не набираете cast.

Теперь, если вы хотите объявить переменную типа rainBowColors, то в C

enum rainBowColors variableOne = red;

И в С#/С++ вы можете сделать это как:

rainBowColors variableOne = red;

Ответ 7

Еще одно преимущество использования Enum заключается в том, что в случае изменения любого целочисленного значения нам нужно изменить только определение Enum, и мы можем избежать изменения кода повсюду.

Ответ 8

Перечисление (ENUM)

Перечисление - это тип значения с набором связанных именованных констант, часто называемых списком перечислителей. Ключевое слово enum используется для объявления перечисления. Это примитивный тип данных, который определяется пользователем.

Тип перечислений может быть целым (float, int, byte, double и т.д.). Но если вы использовали рядом с int, его нужно отличить.

enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
enum Months : byte { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec }; 

Ответ 9

Давайте возьмем пример, мы берем нормальную константу в классе, подобном int a = 10;

ошибочно присваиваем новое значение этой переменной в том же классе, что и а = 20; то мы получим неверные данные, когда хотим получить к ним доступ. enum обеспечивают безопасный способ доступа к константе.

Также, если у нас есть много констант feild в классе, мы должны были запомнить их, если мы хотим использовать их в классе. но перечисление содержит группу связанного имени константу, если мы хотим получить доступ к константе, тогда нам нужно было запомнить имя перечисления.

Ответ 10

Перечисления представляют собой специальные наборы именованных значений, которые все сопоставляются с набором чисел, обычно целыми числами. Они пригождаются, когда вы хотите иметь возможность выбирать между набором постоянных значений и с каждым возможным значением, относящимся к числу, они могут использоваться в самых разных ситуациях. Как вы увидите в нашем примере, перечисления определены выше классов, внутри нашего пространства имен. Это означает, что мы можем использовать перечисления из всех классов в одном и том же пространстве имен.

Пример объявления:

public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

Пример кода:

using System;

namespace ConsoleApplication1
{
    public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }

    class Program
    {
        static void Main(string[] args)
        {
            Days day = Days.Monday;
            Console.WriteLine((int)day);
            Console.ReadLine();
        }
    }
}

Ответ 11

Перечисления в моем опыте работали в очень специфических случаях и должны использоваться, когда вам абсолютно необходимо поддерживать это в своем приложении. Проблемы вступают в игру с Enums, когда вы работаете с несколькими разработчиками, а какой-то новый разработчик входит в проект и может добавлять перечисление в приложение. Никакие ошибки не строятся, а затем у вас есть еще один разработчик полного стека, который поддерживает этот же список в поиске таблицу в другом порядке. Kaboom!!!!

Сожженный путь во много раз с этим, даже если он не преднамерен. Правило большого пальца не поддерживает список перечислений в приложении более 5 или 6 элементов. Если выше, вы можете сохранить их в таблице поиска в БД по вашему выбору.