C# 7.2 加入可以用底線來區隔二進位表示的數字串
紀錄一下搭配 Flags 的 enum 表示法~
我是最習慣使用 位元移位 XD

十進位表示法

[Flags]
enum Days
{
    None      = 0,  // 0000 0000
    Sunday    = 1,  // 0000 0001
    Monday    = 2,  // 0000 0010
    Tuesday   = 4,  // 0000 0100
    Wednesday = 8,  // 0000 1000
    Thursday  = 16, // 0001 0000
    Friday    = 32, // 0010 0000
    Saturday  = 64  // 0100 0000
}

位元移位表示法

[Flags]
enum Days
{
    None      = 0,      // 0000 0000
    Sunday    = 1 << 0, // 0000 0001
    Monday    = 1 << 1, // 0000 0010
    Tuesday   = 1 << 2, // 0000 0100
    Wednesday = 1 << 3, // 0000 1000
    Thursday  = 1 << 4, // 0001 0000
    Friday    = 1 << 5, // 0010 0000
    Saturday  = 1 << 6  // 0100 0000
}

二進位表示法 (C# 7.2新增)

[Flags]
enum Days
{
    None      = 0b_0000_0000, // 0000 0000
    Sunday    = 0b_0000_0001, // 0000 0001
    Monday    = 0b_0000_0010, // 0000 0010
    Tuesday   = 0b_0000_0100, // 0000 0100
    Wednesday = 0b_0000_1000, // 0000 1000
    Thursday  = 0b_0001_0000, // 0001 0000
    Friday    = 0b_0010_0000, // 0010 0000
    Saturday  = 0b_0100_0000  // 0100 0000
}

參考

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.