枚举的主要用途是什么?

枚举在c#中的主要用途是什么?

编辑: –假设我想比较字符串变量与任何枚举项,那么我如何在c#中做到这一点?

通常你会发现你有一些东西 – 数据,分类,等等 – 最好用几个可以用整数表示的离散状态之一表示。 典型的例子是一年中的几个月。 我们希望一年中的几个月可以表示为两个字符串(“2010年8月19日”)和数字(“2010年8月19日”)。 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); 

枚举是强类型常量。 枚举是一组特殊的命名值,它们都映射到一组数字,通常是整数。 当您希望能够在一组常数值之间进行选择时,它们会派上用场,并且每个可能的值与一个数字相关,它们可以在各种情况下使用。 正如您将在我们的示例中看到的,枚举是在我们的命名空间内的类上面定义的。 这意味着我们可以使用同一名称空间中所有类的枚举。

 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(); } } } 

枚举(Enum)是一种变量类型。 我们可以在C,C#和许多其他语言中找到这个变量类型。 Enum的基本思想是,如果我们有一组整数类型的变量(默认情况下),那么只需使用枚举,而不是使用过多的int值。 这是有效的方式。 假设您想要编写彩虹色,那么您可以这样写:

 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声明。 如果您或您的程序错误地更改任何整数变量的值,即Violet = 115而不是7,那么它将很难调试。

所以,这是Enum。 您可以为任何变量类型组合定义Enum。 对于Enum,您可以编写如下代码:

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

rainBowColors是一种类型,只能为此分配相同类型的其他变量。 在C#/ C ++中,您需要在C中键入强制转换,但不要键入强制转换。

现在,如果你想在C中声明一个类型为rainBowColors的变量

 enum rainBowColors variableOne = red; 

在C#/ C ++中,您可以这样做:

 rainBowColors variableOne = red; 

枚举类型(也称为枚举或枚举)提供了一种有效的方法来定义可以分配给变量的一组命名的整数常量。

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

C#中有两种枚举含义。

枚举(名词)是一组命名值。 例:

 public enum Result { True, False, FileNotFound } 

枚举(动词枚举的名词forms)是指您逐步浏览集合中的项目。

IEnumerable接口由提供枚举function的类使用。 数组就是这种类的一个简单例子。 另一个例子是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 } } 

使用Enum的另一个好处是,如果需要更改任何整数值,我们只需要更改Enum定义,我们就可以避免在整个地方更改代码。

枚举(ENUM)

枚举是一种值类型,带有一组相关的命名常量,通常称为枚举器列表。 enum关键字用于声明枚举。 它是一种原始数据类型,由用户定义。

枚举类型可以是整数(float,int,byte,double等)。 但是如果你在int旁边使用它必须被强制转换。

枚举天{星期日,星期一,星期二,星期三,星期四,星期五,星期六};
 enum月:字节{Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec}; 

让我们举一个例子,我们在一个像int a = 10的类中取常量常量;

我们错误地将新值赋给同一个类中的变量,如a = 20; 那么当我们想要访问它们时,我们会得到错误的数据。 枚举提供访问常量的安全方式。

另外,如果我们在一个类中有很多feild常量,如果我们想在类中使用它们,我们必须记住它们。 但枚举包含相关名称常量的组,如果我们想要访问常量,那么我们只需要记住枚举名称。

我的经验中的枚举在非常具体的情况下工作,并且应该在您绝对需要在应用程序中维护它时使用。 当您与多个开发人员合作并且一些新的开发人员加入项目并且可以向应用程序添加枚举时没有错误所有内容构建但是您有另一个完整的堆栈开发人员在查找中维护相同的列表时,Enums会出现问题表以不同的顺序。 KABOOM !!!!

即使不是故意的,也要多次烧毁这种方式。 经验法则不会在应用程序中维护超过5或6个项目的枚举列表。 如果更高,您可以将它们存储在您选择的DB中的查找表中。