首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于隐式枚举转换的一个困惑解决方案

2012-01-29 
关于隐式枚举转换的一个困惑using Systemenum weekday{sunday,monday,tuesday,wednesday,thursday,friday

关于隐式枚举转换的一个困惑
using System;
enum weekday{
  sunday,monday,tuesday,wednesday,thursday,friday,saturday
};
class test{
  public static void Main(){
  weekday day;
  day=0;
  Console.WriteLine(day);
  }
}
为什么最终的结果是sunday而不是0啊,怎么才能让结果是0??

[解决办法]
这样,默认是通过ToString()来取得值的,由于你的枚举类型不在WriteLine直接支持的类型之类,所以是通过WriteLine(object)来执行的,处理object,就是会调用ToString方法。
Console.WriteLine((int)day);就返回数字了
[解决办法]
1楼的说得很完整。
对于枚举类型来说,它的输出是它的字面量,即sunday,除非没有相应的定义,否则不会输出其数值。
但枚举型可强制转换为整数类型。

热点排行