C 列舉Flag屬性的應用

2021-10-24 21:44:35 字數 972 閱讀 8257

直接上**:

using system;

using static system.console;

namespace firstdotnetcorepro

}public enum daysofweek

}

如果將上述**執行則在控制台會輸出:96。因為列舉型別也是值型別,當進行或操作的時候實際上是對應的數值進行了或運算,所以得到結果5。

如果我們將列舉型別新增flags屬性呢???

我們將上述**做如下修改:

[flags]

public enum daysofweek

則會在控制台輸出:saturday, sunday。這是因為新增了flags屬性的原因,列舉值可以直接進行或運算(或者與運算),不需要轉換為數值進行運算,所以在控制台輸出的還是列舉值。

思考:加上flags屬性後,如果有乙個整型值,並且該值不是該列舉型別中的某乙個常量值,那麼還可以轉換成該列舉型別嗎???

在main函式中,我們執行這樣的**:

static void main(string args)

那麼在控制會輸出:saturday, sunday 。

如果我們定義乙個列舉型別用於表示錯誤型別,即乙個int型別的值中每乙個位元位為1的時候都對應著乙個錯誤型別,如果我們知道了那個int值,那麼我們就可以立馬知道有哪些錯誤了。

如果我們定義了如下的錯誤碼:

[flags]

public enum errorcode

那麼當我們收到乙個錯誤碼值的時候們就可以快速知道包含哪些錯誤:

class program

}

執行上述**會在控制台中會輸出:error3, error4, error6, error7 。

flag的標誌判斷應用

利用flag作為變數狀態標識可精簡 且有助於判斷情況,如判斷素數時的運用,就非常鮮明。include intmain if flag 1 printf d is not a sushu n a else printf d is a sushu n a 這裡的flag 0代表為素數,flag 1代表不...

c 列舉基礎 與 列舉屬性的訪問

列舉提供成組的常數值,它們有助於使成員成為強型別以及提高 的可讀性。在 c 中,使用 enum 來宣告列舉。列舉分為簡單列舉和標誌列舉兩種。基本語法示例 enum day 以下格式也可以 enum day 列舉型別 列舉型別可以是 byte sbyte short ushort int uint l...

c 列舉基礎 與 列舉屬性的訪問

列舉提供成組的常數值,它們有助於使成員成為強型別以及提高 的可讀性。在 c 中,使用 enum 來宣告列舉。列舉分為簡單列舉和標誌列舉兩種。基本語法示例 enum day 以下格式也可以 enum day 列舉型別 列舉型別可以是 byte sbyte short ushort int uint l...