当前位置: 代码迷 >> C# >> C#里的枚举,该怎么处理
  详细解决方案

C#里的枚举,该怎么处理

热度:66   发布时间:2016-05-05 02:58:11.0
C#里的枚举
本帖最后由 weikeli19 于 2015-09-11 16:52:44 编辑
申明:这里的orientation是枚举的类型名称,enum orientation:byte{....}  ,orientation myDirection
书上说:如果要将byte类型转换为orientation,也同样需要进行显示转换。例如,可以使用下述代码将byte变量myByte转换为orientation,并将这个值赋给myDirection: myDirection=(orientation)myByte;当然,这里必须小心,因为并不是所有byte类型变量的值都可以映射为已定义的orientation值。orientation类型可以存储其他byte值,所以这么做不会直接产生一个错误,但会在应用程序的后面违反逻辑。

请问这段话里什么叫因为并不是所有byte类型变量的值都可以映射为已定义的orientation值。它这个orientation值是不是指的是比如
enum orientation:byte
{
     north=1,
     south=2,
     .
     .
}
比如orientation.south  <--这个值?
还有就是这段话:orientation类型可以存储其他byte值,所以这么做不会直接产生一个错误,但会在应用程序的后面违反逻辑。什么叫但会在应用程序的后面违反逻辑?给我解释一下好吗?是不是指的是orientation.north,orientation.south的值?
------解决思路----------------------
因为并不是所有byte类型变量的值都可以映射为已定义的orientation值。


如果你的枚举里面没有定义这个值,以后用的时候可能会在逻辑上出错
比如你写的例子
 myDirection2=(orientation)2;
myDirection2就是有效的。
 myDirection3=(orientation)3;
myDirection2就不是有效的。
  相关解决方案