using System;

[Flags]
enum CardDeckSettings : uint
{
    SingleDeck = 0x01,      // 单副牌,第0位为1
    LargePictures = 0x02,   // 大图案,第1位为1
    FancyNumbers = 0x04,    // 精美数字,第2位为1
    Animation = 0x08       // 动画,第3位为1
}

class MyClass
{
    bool UseSingleDeck = false,   // 使用单副牌,默认为false
        UseBigPics = false,       // 使用大图案,默认为false
        UseFancyNumbers = false,  // 使用精美数字,默认为false
        UseAnimation = false,     // 显示动画,默认为false
        UseAnimationAndFancyNumbers = false;   // 显示动画和精美数字,默认为false

    public void SetOptions(CardDeckSettings ops)
    {
        UseSingleDeck = ops.HasFlag(CardDeckSettings.SingleDeck);   // 判断是否设置了单副牌选项
        UseBigPics = ops.HasFlag(CardDeckSettings.LargePictures);   // 判断是否设置了大图案选项
        UseFancyNumbers = ops.HasFlag(CardDeckSettings.FancyNumbers);   // 判断是否设置了精美数字选项
        UseAnimation = ops.HasFlag(CardDeckSettings.Animation);   // 判断是否设置了动画选项

        CardDeckSettings testFlags =
            CardDeckSettings.Animation | CardDeckSettings.FancyNumbers;   // 定义一个测试标志,包含动画和精美数字
        UseAnimationAndFancyNumbers = ops.HasFlag(testFlags);   // 判断是否同时设置了动画和精美数字选项
    }

    public void PrintOptions()
    {
        Console.WriteLine('Option settings:');   // 输出选项设置
        Console.WriteLine($'  Use Single Deck                 - { UseSingleDeck }');   // 输出是否使用单副牌选项
        Console.WriteLine($'  Use Large Pictures              - { UseBigPics }');   // 输出是否使用大图案选项
        Console.WriteLine($'  Use Fancy Numbers               - { UseFancyNumbers }');   // 输出是否使用精美数字选项
        Console.WriteLine($'  Show Animation                  - { UseAnimation }');   // 输出是否显示动画选项
        Console.WriteLine('  Show Animation and FancyNumbers – {0}', UseAnimationAndFancyNumbers);   // 输出是否同时显示动画和精美数字选项
    }
}

class Program
{
    static void Main()
    {
        MyClass mc = new MyClass();   // 创建一个 MyClass 实例
        CardDeckSettings ops = CardDeckSettings.SingleDeck   // 设置选项为单副牌、精美数字、动画
                              | CardDeckSettings.FancyNumbers
                              | CardDeckSettings.Animation;
        mc.SetOptions(ops);   // 设置选项
        mc.PrintOptions();   // 打印选项设置
    }
}
C# 代码逐行中文注释:枚举和选项设置示例

原文地址: http://www.cveoy.top/t/topic/b2C4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录