• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
shhqy82
博客园    首页    新随笔    联系   管理    订阅  订阅
标记枚举(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}
posted on 2010-09-18 12:58  shhqy82  阅读(1354)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3