缓慢前进的小菜 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日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改