2016-05-23 111 views
4

看看这些C++代码枚举类C++ -replacement-在C#

enum class Flag : int32 { 
    f_unread = (1 << 0), 
    f_out = (1 << 1), 
    f_mentioned = (1 << 4), 

    MAX_FIELD = (1 << 4), 
}; 

什么是C#隐蔽这些代码的?

+0

看看https://msdn.microsoft.com/en-us/library/system.flagsattribute.aspx。 – Thomas

+0

看看https://msdn.microsoft.com/en-us/library/sbbt4032.aspx –

+0

基于msdn n C#我们有两个名称用于组合enum-class,但在C++中我们有一个名称。 – MoonLight

回答

5

Using Tangible。看起来好像差不多。

[Flags] 
public enum Flag : int 
{ 
    f_unread = (1 << 0), 
    f_out = (1 << 1), 
    f_mentioned = (1 << 4), 

    MAX_FIELD = (1 << 4), 
} 

在C#,使用enum作为标志操作位字段中,它应与FlagsAttribute,其enum之前添加[FlagsAttribute][Flags]加入。

+1

当枚举类型的变量可以包含由枚举定义的值的组合时,将[Flags]属性添加到枚举声明中。 – NineBerry

+0

@NineBerry - 完成,谢谢。 –

+0

你不需要':int' - 这是默认值。 –