zoukankan      html  css  js  c++  java
  • 枚举 互斥 和标签

    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]的枚举,如人的性别,非男即女

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

     
     
  • 相关阅读:
    canvas制作简单动画
    jQuery 2.2 和 1.12 新版本发布
    jquery实现简单鼠标经过图片预览效果
    js深入理解"闭包"
    js判断一个变量是否为数组的解决方案
    js+css:43种常见的浏览器兼容性问题大汇总
    js判断当前操作系统
    js判断是否微信浏览器打开
    h5connect.js 腾讯云视频点播使用指南
    Docker入门书籍
  • 原文地址:https://www.cnblogs.com/nanxiaoxiang/p/6490083.html
Copyright © 2011-2022 走看看