枚舉 互斥 和標籤

1   public class Student
2     {
3         public Student()
4         { }
5         public int Age { get; set; }
6         public string Name { get; set; }
7         //性格
8         public States Xingge { get; set; }
9     }

Student類spa

下面是枚舉code

    public enum States
    {
        可愛,
        活潑,
        勤奮,
        認真

    }

主程序blog

 

    static void Main()
        {
            Student stu = new Student();
            stu.Name = "小明";
            stu.Age = 12;
            stu.Xingge = States.活潑;
            Console.WriteLine(stu.Xingge);//打印"活潑"
            stu.Xingge = States.活潑 | States.可愛;
//打印"活潑" 這裏 打印的結果和States.活潑 | States.可愛;的順序無關
//這和枚舉中他們的順序相關,誰在下面打印誰,即誰的值大,打印誰
        Console.WriteLine(stu.Xingge);
    Console.Read(); }

22標誌枚舉get

  [Flags]//表示是標誌枚舉
    public enum States
    {
        可愛,
        活潑,
        勤奮,
        認真
    }

當修改States後,string

  stu.Xingge = States.活潑 | States.可愛;
 Console.WriteLine(stu.Xingge);//打印仍是活潑(由於活潑 默認值大)
仍是沒有知足咱們打印多個性格 的願望
由於咱們不光要給States枚舉增長[Flags]標籤,還要給他們一一賦值
 [Flags]
    public enum States
    {
        可愛=1,//0001
        活潑=2,//0010
        勤奮=4,//0100
        認真=8
    }
 

  stu.Xingge = States.可愛|States.活潑|States.認真;
            Console.WriteLine(stu.Xingge);//打印"可愛,活潑,認真"  it

 

 

使用狀況,當是互斥的狀況下 用沒有標籤[Flags]的枚舉,如人的性別,非男即女class

當不是互斥的時候,如 一個文件的權限,可修改,可刪除等 就用標籤枚舉權限

相關文章
相關標籤/搜索