簡體   English   中英

CLR - 使用“Flags”屬性聲明枚舉

[英]CLR - Declare enum with "Flags" attribute

我在 CLR/CLI 中有以下枚舉:

public enum class Days
{
    Sunday,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
};

在 C# 中,如果我想創建選定枚舉的組合,我曾經在枚舉的聲明之前添加[Flags]屬性。

C++ CLR 中是否存在類似的東西?

所述FlagsAttribute在C#只是表明枚舉可以作為一個位域進行處理。

真正重要的是您適當地定義枚舉值,以便可以對它們執行 AND、OR、NOT 和 XOR 按位運算,即您應該為每個枚舉值分配 2 的下一個更大的冪:

public enum class Days
{
    Sunday = 1,
    Monday = 2,
    Tuesday = 4,
    Wednesday = 8,
    Thursday = 16,
    Friday = 32,
    Saturday = 64
};

[Flags]不會自動使枚舉值成為 2 的冪。

[Flags] 枚舉屬性在 C# 中是什么意思?

您可以像這樣在 C++/CLI 中使用 flags 屬性:

[System::Flags]
public enum class Days : int
{
    Sunday = 1,
    Monday = 2,
    Tuesday = 4,
    Wednesday = 8,
    Thursday = 16,
    Friday = 32,
    Saturday = 64
};

[Flags] 不會自動使枚舉值成為 2 的冪。 但是一些靜態代碼分析工具可能需要它:

PVS工作室

聲納皮棉

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM