zoukankan      html  css  js  c++  java
  • 标记枚举(flags)的使用

        标记枚举是为标记相互包含而使用的,每个成员被赋给一个唯一的按位值。
        用按位或运算符(|)来组合按位标记。用按位和运算符(&)来确定一个标记的存在。
        从组合状态中去掉一个元素用& (~)。
    示例代码:

     1using System;
     2using System.Collections.Generic;
     3using System.Text;
     4
     5namespace ConsoleApplication1
     6{
     7    class Program
     8    {
     9        [Flags]
    10        public enum Contribution
    11        {
    12            Pension=0x01,
    13            ProfitSharing=0x02,
    14            CreditBureau=0x04,
    15            SavingsPlan=0x08,
    16            All = Pension | ProfitSharing | CreditBureau | SavingsPlan
    17        }

    18        public class Employee
    19        {
    20            private Contribution prop_contributions;
    21            public Contribution contributions
    22            {
    23                get return prop_contributions; }
    24                set { prop_contributions = value; }
    25            }

    26        }

    27
    28        public class Starter
    29        {
    30            public static void Main()
    31            {
    32                Employee bob = new Employee();
    33                bob.contributions = Contribution.ProfitSharing | Contribution.CreditBureau;
    34                if ((bob.contributions & Contribution.ProfitSharing) == Contribution.ProfitSharing)
    35                {
    36                    Console.WriteLine("Bob enrolled in profit sharing");
    37                    Console.WriteLine(bob.contributions);
    38                    bob.contributions = bob.contributions & (~Contribution.ProfitSharing);
    39                    Console.WriteLine(bob.contributions);
    40                }

    41            }

    42        }

    43    }

    44}
  • 相关阅读:
    AX88772B 驱动移植
    USB 驱动之 usb_register 函数解析
    am335x USB 驱动框架记录
    warning: assignment from incompatible pointer type [enabled by default]
    WARNING: arch/arm/mach-omap2/built-in.o(.text+0x12cdc): Section mismatch in reference from the function mmc0_init() to the (unknown reference) .init.data:(unknown)
    Oracle11g客户端client的下载与安装
    sqlserver2008R2 评估期已过
    SQL2008 提示评估期已过的解决方法
    Windows下Oracle定时备份(全量备份)
    某客的《微信小程序》从基础到实战视频教程
  • 原文地址:https://www.cnblogs.com/fang8206/p/1830133.html
Copyright © 2011-2022 走看看