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

gamer0808 2013-07-10 09:43:54
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] //数组可能不是这么写的,大概这么个意思
...全文
110 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1. 可读性好。你可以用1,2,...,7表示Monday, Tuesday, ..., Sunday,你知道他们的对应规则.那如果能直接用这些字面意义的单词来表示的话,不是更好吗?枚举类型提供了这种方便,虽然存储的值是1,2,...,7,但你可以通过Enum.Monday, Tuesday,..., Sunday这样的用法来使用。 2. 限定范围。如果你用1~7来表示Mon~Sun, 那么你给一个整型变量赋值的时候,如果你用整数,那么你有可能传1~7之外的值;但如果你用枚举,那么你给一个枚举变量赋值时,只能从你定义的范围内来选择了,不会出错。
Regan-lin 2013-07-10
  • 打赏
  • 举报
回复
引用 4 楼 MicrosoftCenterOfHN 的回复:
[quote=引用 3 楼 u011130289 的回复:] 就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了
枚举类型是值类型,不是引用类型[/quote] 老是记错string和枚举,老是混淆了,string是引用类型的,但是在答理论时我会说成值类型,伤不起的程序猿,只要知道怎么用,不知道怎么来的,伤不起啊!
  • 打赏
  • 举报
回复
引用 3 楼 u011130289 的回复:
就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了
枚举类型是值类型,不是引用类型
Regan-lin 2013-07-10
  • 打赏
  • 举报
回复
就好像一个静态类型一样,但不完全是,你要用直接枚举名加.就可以用到它里面的属性了,枚举类型是个引用类型,你这样输入肯定是east了,因为它是个orientat枚举类型,你将Console.WriteLine((int)myd)改为这样就行了
benbenRH 2013-07-10
  • 打赏
  • 举报
回复
微软的工程师认为,这样做编程的时候更好用!
ztszhq 2013-07-10
  • 打赏
  • 举报
回复
int myd= (int)orientat.east; 这就是 3了

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧