当前位置:编程学习 > C#/ASP.NET >>

菜鸟问一下,怎么理解枚举类型

using System.Text;

namespace ConsoleApplication5_enum
{
    enum orientat : int { 
        north=1,
        south=2,
        east=3,
        west=4

    }


    class Program
    {
        static void Main(string[] args)
        {
            orientat myd = orientat.east;
            Console.WriteLine(myd);
            Console.ReadKey();
        }
    }
}


这个例子中,orientat 的定义是int,为什么输出的是east而不是3呢?

orientat myd = orientat.east 这句话我也不太理解
我把枚举想象成数组
就类似于 Array aaa= aaa[0] //数组可能不是这么写的,大概这么个意思
--------------------编程问答-------------------- int myd= (int)orientat.east;
这就是 3了 --------------------编程问答-------------------- 微软的工程师认为,这样做编程的时候更好用! --------------------编程问答-------------------- 就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了 --------------------编程问答--------------------
引用 3 楼 u011130289 的回复:
就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了

枚举类型是值类型,不是引用类型 --------------------编程问答--------------------
引用 4 楼 MicrosoftCenterOfHN 的回复:
Quote: 引用 3 楼 u011130289 的回复:

就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了

枚举类型是值类型,不是引用类型

老是记错string和枚举,老是混淆了,string是引用类型的,但是在答理论时我会说成值类型,伤不起的程序猿,只要知道怎么用,不知道怎么来的,伤不起啊! --------------------编程问答-------------------- 1. 可读性好。你可以用1,2,...,7表示Monday, Tuesday, ..., Sunday,你知道他们的对应规则.那如果能直接用这些字面意义的单词来表示的话,不是更好吗?枚举类型提供了这种方便,虽然存储的值是1,2,...,7,但你可以通过Enum.Monday, Tuesday,..., Sunday这样的用法来使用。
2. 限定范围。如果你用1~7来表示Mon~Sun, 那么你给一个整型变量赋值的时候,如果你用整数,那么你有可能传1~7之外的值;但如果你用枚举,那么你给一个枚举变量赋值时,只能从你定义的范围内来选择了,不会出错。

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,