浅析C#枚举值

    文章来源:万象互联 更新时间:2012-10-30 13:46:07
分享:

本文我们将讨论的是C#枚举值出现逻辑错误的相关解决方案,希望对大家有所帮助。项目中,一同事定义了个枚举,而我在根据此枚举做判断的时候,出了一些逻辑性的错误。导致错误的原因是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  

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() + ", ");  
  6. }

    文章来源:http://www.hulian.top,转载请注明!

版权说明:本站原创文章,由万象互联SEO优化发表.
本文地址:https://www.hulian.top/zixun/post/5333.html
在线咨询
  • 在线时间
  • 8:00-21:00