# C# 枚举enum

继承,枚举可继承其它基本类型,明确表示为何种基础类型

C#
enum FileAccess:byte{
    OK = 0,
    Error = 1
}

,按进制位表示值,方便用于 & | 运算,判断

C#
[Flags]
enum FileAccess:byte{
    Read = 1 << 0,  // 1
    Write = 1 << 1, // 2
    ReadOrWrite = Read | Write, //3
}

FileAccess access = FileAccess.Read | FileAccess.Write;

//是否包含 read
if(access & FileAccess.Read > 0){

}
//是否包含 write
if(access & FileAccess.Write > 0){

}

//去掉 read
1. 再次执行又会还原回来循环往复
    access ^= FileAccess.Read;
2. 多次执行不会循环往复
    access = access & (~FileAccess.Read);