缓慢前进的小菜 2023-02-01 23:18 采纳率: 100%
浏览 34
已结题

C# Flag 标志枚举结果计算过程

C# Flag 标志枚举结果计算过程

using System;

namespace EnumSample
{
    [Flags]
    public enum DaysOfWeek
    {
        Monday = 0x1,
        Tuesday = 0x2,
        Wednesday = 0x4,
        Thursday = 0x8,
        Friday = 0x10,
        Saturday = 0x20,
        Sunday = 0x40,
        Weekend = Saturday | Sunday,
        Workday = 0x1f,
        AllWeek = Workday | Weekend
    }
class Program
    {
static void Main()
        {
            DaysOfWeekSamples();
            ColorSamples();
            UsingEnumClass();

            Console.ReadLine();
        }

private static void DaysOfWeekSamples()
        {
            DaysOfWeek mondayAndWednesday = DaysOfWeek.Monday | DaysOfWeek.Wednesday;
            Console.WriteLine(mondayAndWednesday);//求解输出的值得计算过程
            DaysOfWeek weekend = DaysOfWeek.Saturday | DaysOfWeek.Sunday;
            Console.WriteLine(weekend);
            DaysOfWeek workday = DaysOfWeek.Monday | DaysOfWeek.Tuesday | DaysOfWeek.Wednesday | DaysOfWeek.Thursday  | DaysOfWeek.Friday;
            Console.WriteLine(workday);
        }
}
}

求解输出的值得计算过程

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-02-02 07:13
    关注

    当你在枚举类型上定义了 [Flags] 属性时,可以使用位运算符 (| 或) 将多个常量合并成一个值。

    例如,在 DaysOfWeek 枚举中,Monday 的值为 0x1,Wednesday 的值为 0x4,因此 Monday | Wednesday 的值为 0x1 | 0x4 = 0x5。

    在 DaysOfWeekSamples 方法中:

    mondayAndWednesday 的值为 DaysOfWeek.Monday | DaysOfWeek.Wednesday,即 0x1 | 0x4 = 0x5。

    weekend 的值为 DaysOfWeek.Saturday | DaysOfWeek.Sunday,即 0x20 | 0x40 = 0x60。workday 的值为 DaysOfWeek.Monday | DaysOfWeek.Tuesday | DaysOfWeek.Wednesday | DaysOfWeek.Thursday | DaysOfWeek.Friday,即 0x1 | 0x2 | 0x4 | 0x8 | 0x10 = 0x1f。

    因此,输出的值分别为 5,60 和 31。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月11日
  • 已采纳回答 2月3日
  • 创建了问题 2月1日

悬赏问题

  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私