• 枚举 互斥 和标签


    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类

    下面是枚举

        public enum States
        {
            可爱,
            活泼,
            勤奋,
            认真
    
        }

    主程序

        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标志枚举

      [Flags]//表示是标志枚举
        public enum States
        {
            可爱,
            活泼,
            勤奋,
            认真
        }

    当修改States后,

      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);//打印"可爱,活泼,认真" 

    使用情况,当是互斥的情况下 用没有标签[Flags]的枚举,如人的性别,非男即女

    当不是互斥的时候,如 一个文件的权限,可修改,可删除等 就用标签枚举

     
     
  • 相关阅读:
    win10如何安装应用商店
    Redis从入门到精通——认识 Redis
    SkyWalking——SkyWalking安装和配置
    SkyWalking——SkyWalking二次开发必备知识
    SkyWalking——SkyWalking架构设计
    SkyWalking——全面认识Apache SkyWalking
    Redis从入门到精通——初识NoSQL
    RocketMQ(4.8.0)——延迟消息机制
    RocketMQ(4.8.0)——事务消息机制
    RocketMQ(4.8.0)——Broker 的关机恢复机制
  • 原文地址:https://www.cnblogs.com/nanxiaoxiang/p/6490083.html
Copyright © 2020-2023  润新知