日期:2014-05-18  浏览次数:20746 次

关于隐式枚举转换的一个困惑
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,除非没有相应的定义,否则不会输出其数值。
但枚举型可强制转换为整数类型。