`

enum : C#中的枚举类型,原来有这么多用法

 
阅读更多

今天来的时候打开了MSDN扫了一眼C#里的枚举类型~~ 蓦然发现这东西还有些新玩法。

首先是简单介绍,……在此略过。因为enum用法很简单么~

定义一个简单的枚举类型:
   enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};        //这时候         Days.Sat = 0 ,后面依此递增。

当然也可以手动指定起始值:
   enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri}; //这样就从1开始了。

          枚举型的隐含类型为 int 型, 例如 int x=(int)Days.Sat ; 一点问题没有。据MSDN说枚举类型的隐含类型可以为除了char以外的任意数字类型……        [        Every enumeration type has an underlying type, which can be any integral type except char. ]
          下面这个例程演示使用长整型作为枚举的隐含类型:

// keyword_enum2.cs
// Using long enumerators
using System;
public class EnumTest
{
    enum Range :long {Max = 2147483648L, Min = 255L};
    static void Main()
          {
       long x = (long)Range.Max;
       long y = (long)Range.Min;
        Console.WriteLine("Max = {0}", x);
        Console.WriteLine("Min = {0}", y);
          }
}
如果需要重新取回长整形值,也是一个转换就可以了。  long x = (long)Range.Max;

最有意思的还是下面要说的,enum的[Flags]标记。啥也不说啦,看程序吧:
//The following code example illustrates the use and effect of the
//System.FlagsAttribute attribute on an enum declaration.

// enumFlags.cs
// Using the FlagsAttribute on enumerations.
using System;

[Flags]
public enum FileAttribute
{
         ReadOnly= 0x01,
         Hide= 0x02,
         System= 0x04,
         Archived= 0x08
}

class FlagTest
{
    static void Main()
         {
        FileAttributeoptions options= FileAttribute.ReadOnly| FileAttribute.System;
        Console.WriteLine(options);
        Console.WriteLine((int)options);
         }
}

输出为:
       
ReadOnly, System
5
看到了吧?呵呵。这就是常用的标志位阿~ 在C#里变得更简单易用了。

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

1> 我给定一个值1,怎样把对应的Sun以字符串的形式返回来?
答: 感谢网友lanyur的回复, 正确的方法应该是 ((Days)1).ToString();

2>我给定一个字符串"Sun",怎么返回enum Day.Sun?
答: 可以直接用 Enum.Parse( enumType, string,[boolean])来解决问题. ;例如这个例子, Enum.Parse(typeof(Day), "Sun", true) 就返回Day.Sun , 第3个参数指定是否大小写敏感. 可以省略.

3>我想知道 enum Day 中所有的字符串值. 怎么写?
答: 这个貌似也很简单哦, foreach(string name in Enum.GetNames(typeof(Day))) Console.WriteLine(name);   还有一个Enum.GetName() ,具体用法看MSDN去吧....

 

 

http://msdn.microsoft.com/en-us/library/sbbt4032(v=vs.80).aspx

 

分享到:
评论

相关推荐

    枚举语句enum用法详解

    在C#中,枚举类型是基于整数类型的,通常使用`enum`关键字来声明。例如: ```csharp enum Colors { Red, Green, Blue } ``` 上述代码定义了一个名为`Colors`的枚举,它有三个成员:`Red`、`Green`和`Blue`。默认...

    C# 枚举类型的实例说明

    在本文中,我们将深入探讨C#枚举类型的实例说明,以及其主要的使用方法。 ### 枚举类型的基本定义 在C#中,枚举类型的定义是通过`enum`关键字来实现的。例如,我们可以通过以下方式定义一个表示一周七天的枚举类型...

    C# 颜色枚举对照表

    1. **颜色枚举**:`Color` 枚举是 C# 中的一个枚举类型,它包含了大量预定义的颜色,如 `Red`, `Green`, `Blue` 等。这些颜色名称对应于特定的 ARGB(Alpha, Red, Green, Blue)值,每个颜色都可以通过其名称或对应...

    关于c#中枚举类型支持显示中文的扩展说明

    本文将详细探讨如何在C#中实现枚举类型支持显示中文的扩展,以便在UI上提供清晰易懂的状态信息。 首先,我们需要定义一个枚举类型,以满足业务中的审核状态需求。例如,我们可以创建一个名为`AuditEnum`的枚举: `...

    C#高性能枚举去除泛型中的重复数据

    枚举(Enum)和泛型(Generic)是C#语言中两个非常重要的特性,它们各自有其独特的作用,但在某些场景下可以结合使用以提高代码的复用性和性能。本文将深入探讨如何利用C#的枚举和泛型技术来实现高性能的数据去重。 ...

    C# 变量 枚举和数组

    枚举是C#中的一个特殊类型,用于定义一组命名的常量。枚举在处理一组相关的值时特别方便,比如表示星期、颜色或状态等。枚举的定义如下: ```csharp enum Color { Red, Green, Blue } ``` 在这里,我们定义了一个名...

    Unity中实现多标签属性 枚举类型可以选择一个、多个、全选、全不选

    本篇文章将详细讲解如何在Unity中利用C#的枚举(Enum)类型实现多标签属性,允许用户在编辑器中选择一个、多个、全选或全不选的选项。 首先,我们需要定义一个枚举类型,它包含了所有可能的选择项。例如,假设我们...

    训练师脚本:《使用C#中的枚举、结构、值类型和引用类型

    ### 使用C#中的枚举、结构、值类型和引用类型 #### 枚举(Enum) **定义**: 枚举是一种特殊的类,它定义了一组固定的命名常量,通常用于表示一系列预定义的值。 **语法**: ```csharp [访问修饰符] enum 枚举名 { ...

    给枚举值增加扩展数据

    在编程中,枚举(Enum)是一种特殊的数据类型,用于定义一组预定义的常量,这些常量通常代表特定的值或状态。在C#等编程语言中,枚举可以帮助我们编写更清晰、更具可读性的代码。然而,标准枚举仅支持基本数据类型...

    详解c#中的枚举.pdf

    C#中的枚举类型详解 在C#语言中,枚举类型是一种特殊的值类型,用于定义一组命名的常数。枚举类型可以在类声明中出现,用于声明一个新的枚举类型。枚举类型的声明包括枚举声明、枚举成员和枚举数值及操作等几个方面...

    C#获取枚举Eumn的属性值,并绑定到控件

    枚举类型的每个值都关联一个名称,这使得代码更易读、更具可维护性。在某些场景下,我们需要获取枚举的属性值,比如描述信息,以便更好地展示给用户。本文将详细介绍如何使用反射(Reflection)来实现这一功能,并将...

    C#中的枚举.doc

    `System.Enum`提供了一些方法和属性,比如`GetNames()`和`GetValue()`,用于枚举类型的操作,但它本身不是一个枚举类型,而是一个类类型。 **使用枚举类型** 枚举类型可以用于switch语句中,提高代码可读性: ```...

    C#枚举的使用 欢迎下载

    ### C#枚举类型的基本用法与特性 在C#编程语言中,枚举(Enum)是一种非常实用的数据类型,它允许程序员定义一个整数常量集合,这些常量通常代表一组固定的、有限的值。枚举类型的使用非常广泛,尤其是在处理具有...

    详解c#中的枚举.docx

    枚举类型可以用在各种场景下,例如,在 switch 语句中使用枚举类型,可以使得代码更加简洁易懂。枚举类型也可以用在方法的参数和返回值中,提高代码的可读性和维护性。 枚举类型是一种非常有用的语言特性,可以帮助...

    JavaScript enum枚举类型定义及使用方法

    JavaScript中的枚举类型(enum)并不是语言内建的特性,如C#或Java等其他语言。然而,开发者可以通过模拟枚举的行为来实现类似的功能。在JavaScript中,我们通常使用对象(object)来模拟枚举,就像示例代码中所示。...

    枚举类型的使用

    本文将深入探讨枚举类型的使用及其在不同语言中的实现方式。 首先,我们来看C#中的枚举。在C#中,枚举是一种值类型,可以定义一组有名字的整数常量。通过`enum`关键字来创建枚举,例如: ```csharp enum Color { ...

    对enum简单的封装

    标题“对enum简单的封装”可能是指博主通过自定义的方式来增强枚举类型的使用,使其更加灵活或功能更强大。虽然具体的实现细节没有提供,但我们可以探讨一下通常情况下对枚举进行封装可能涉及的一些知识点: 1. **...

    深入理解C#中的枚举

    在C#编程语言中,枚举(Enumeration)是一种非常有用的数据类型,它允许我们为一组相关的整数值定义命名常量。通过使用枚举,代码的可读性...理解枚举的声明、成员、转换以及使用方法对于编写高质量的C#代码至关重要。

    C#特性与枚举值遍历

    枚举类型可以让我们更清晰地表达代码中的意图,提高代码的可读性和可维护性。而特性(Attributes)则是C#中一种元数据,允许我们在代码中添加额外的信息,这些信息可以在运行时通过反射来访问。 1. 枚举(Enums)...

Global site tag (gtag.js) - Google Analytics