C#枚举值出现逻辑错误的相关解决方案

转帖|其它|编辑:郝浩|2010-08-13 09:47:35.000|阅读 759 次

概述:项目中,一同事定义了个枚举,而我在根据此枚举做判断的时候,出了一些逻辑性的错误。导致错误的原因是C#中对枚举值的自增、不唯一的问题,然后通过实际的代码,测试了枚举的一些特性。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  项目中,一同事定义了个枚举,而我在根据此枚举做判断的时候,出了一些逻辑性的错误。导致错误的原因是C#中对枚举值的自增、不唯一的问题,然后通过实际的代码,测试了枚举的一些特性。

  1.枚举名可以是中文

  枚举的类名必须跟其他类的类名命名规则一样,而枚举的名字可以是中文,但是不能相同。

  可以定义下面这样的枚举。

  1. public enum Weekdays  
  2. {  
  3.     星期一,  
  4.     星期二,  
  5.     星期三,  
  6.     星期四,  
  7.     星期五  

  但下面这样的定义是不允许的。

  1. public enum Letter  
  2. {  
  3.     A,  
  4.     A,  
  5.     C,  
  6.     D,  
  7.     E  

  编译器会给出这样的提示:类型“Letter”已经包含“A”的定义。

  2.枚举值可以相同

  可以定义下面这样的枚举。

  1. public enum Letter  
  2. {  
  3.     A = 1,  
  4.     a = 1,  
  5.     B = 2,  
  6.     b = 2,  
  7.     C,  
  8.     D,  
  9.     E  
  10. }

   3.枚举的默认值

  在不写明枚举值的情况下,其值为上一枚举值加1,若其为第一个则从0开始。

  比如说枚举:

  1. public enum Letter  
  2. {  
  3.     A,  
  4.     B,  
  5.     C = -3,  
  6.     D,  
  7.     E  

  各枚举值为:A = 0,B = 1,C = -3,D = -2,E = -1。 

  4.遍历枚举

  1. Array letterArray = Enum.GetValues(typeof(Letter));  
  2.  
  3. foreach (Letter item in letterArray)  
  4. {  
  5. Console.Write(item.ToString() + " = " + Convert.ToInt32(item).ToString() + ", ");  

   


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP