相关疑难解决方法(0)

[Flags]枚举属性在C#中意味着什么?

我不时会看到如下的枚举:

[Flags]
public enum Options 
{
    None    = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}
Run Code Online (Sandbox Code Playgroud)

我不明白[Flags]-attribute 到底是做什么的.

任何人都可以发布一个很好的解释或示例?

c# enums flags

1383
推荐指数
12
解决办法
46万
查看次数

C#中的位字段

我有一个结构,我需要填充和写入磁盘(实际上几个).

一个例子是:

byte-6    
bit0 - original_or_copy  
bit1 - copyright  
bit2 - data_alignment_indicator  
bit3 - PES_priority  
bit4-bit5 - PES_scrambling control.  
bit6-bit7 - reserved  
Run Code Online (Sandbox Code Playgroud)

在CI中可能会执行以下操作:

struct PESHeader  {
    unsigned reserved:2;
    unsigned scrambling_control:2;
    unsigned priority:1;
    unsigned data_alignment_indicator:1;
    unsigned copyright:1;
    unsigned original_or_copy:1;
};
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中做到这一点,使我能够使用struct dereferencing点运算符访问位?

对于几个结构,我可以在访问器函数中进行包裹移位.

我有很多结构要以这种方式处理,所以我正在寻找一些更容易阅读和更快写的东西.

c# bit-fields

75
推荐指数
8
解决办法
9万
查看次数

标签 统计

c# ×2

bit-fields ×1

enums ×1

flags ×1