枚举类型解析

所有的枚举类型都是隐式继承自System.Enum类型,Enum类型是继承自System.ValueType类型唯一不为值类型的引用类型。

 
public   abstract   class  Enum:ValueType,IComparable,IFormattable,IConvertible

 


枚举定义:

 

enum  FileType
    {
        Txt
= 1 ,
        Exe,
        Meg
    }

    
///   <summary>
    
///  为啥WorkType 就可以从int 派生
    
///   </summary>
     enum   WorkType :  int
    {
        A,
        B
    }

 


 
 为什么System.Enum是引用类型?
 因为所有的枚举类都隐式继承System.Enum,所以System.Enum 是引用类型。因为值类型不能被继承。

为什么在ValueType下实现一个Enum?
主要是实现对枚举类型公共成员与公共方法,任何继承枚举类型都自动继承了Enum中实现的方法。

Enum 类型与枚举类型的关系?
枚举类型是值类型,分配在线程的对战上,自动继承System.Enum类型,但是本身不能被继承;
Enum类型是引用类型,分配在托管堆上,Enum类型本身不是枚举类型,但是提供了操作枚举类型的公用方法。


• 枚举类型用 new 初始化后枚举值为0
 枚举的值为0
• 枚举类型支持自增或自减

常用方法

• Enum.GetNames(Enum 类型)
• Enum.GetValues(Enum 类型)
• Enum.IsDefined(Enum ,“”):判断枚举中是否包含命名符号
• Enum.
    
enum  Week
    {
        Mon,
        Third
    }
    
enum  Name: byte
    {
        a,
        b
    }

Console.WriteLine (Enum.GetUnderlyingType(
typeof (Week)));
Console.WriteLine (Enum.GetUnderlyingType (
typeof (Name)));

 输出结果:
System.Int32
System.Byte

位枚举
     位枚举一般2的幂来定义。
     
enum  FileType
    {
        Read
= 0x01 ,
        Write
= 0x02
    }
    


    [Flags]
enum  FileTypePro
    {
        Read
= 0x01 ,
        Write
= 0x02
    }
// 调用语句
// 位标记枚举
        FileType fileType = FileType.Read  |  FileType.Write ;
        Console.WriteLine (
" FileType.Read | FileType.Write= " + fileType);
        
        FileTypePro fileTypePro
= FileTypePro.Read  |  FileTypePro.Write ;
        Console.WriteLine (
" FileTypePro.Read | FileTypePro.Write= " + fileTypePro);
Console.WriteLine (
" 0x03= " + (FileTypePro) 0x03 );

 



输出:
FileType.Read 
|  FileType.Write = 3
FileTypePro.Read 
|  FileTypePro.Write = Read, Write
0x03 = Read, Write




  
 

 



 

转载于:https://www.cnblogs.com/hbb0b0/archive/2011/02/20/1959324.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值