相关疑难解决方法(0)

枚举上最常见的C#按位操作

对于我的生活,我不记得如何设置,删除,切换或测试位域中的位.要么我不确定,要么混淆它们,因为我很少需要这些.因此,"比特作弊表"会很好.

例如:

flags = flags | FlagsEnum.Bit4;  // Set bit 4.
Run Code Online (Sandbox Code Playgroud)

要么

if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) // Is there a less verbose way?
Run Code Online (Sandbox Code Playgroud)

您能举例说明所有其他常见操作,最好是使用[Flags]枚举的C#语法吗?

.net c# enums flags bit-manipulation

197
推荐指数
9
解决办法
16万
查看次数

运算符'&'不能应用于'T'和'T'类型的操作数

我的应用程序定义了几个enum包含该[Flags]属性的s .

我想写一个小的实用程序方法来检查是否为这些中enum的任何一个设置了标志,我想出了以下内容.

protected static bool IsFlagSet<T>(ref T value, ref T flags)
{
    return ((value & flags) == flags);
}
Run Code Online (Sandbox Code Playgroud)

但这给了我错误"运算符'&'不能应用于'T'和'T'类型的操作数".

这可以使用吗?

c# generics generic-method

9
推荐指数
3
解决办法
4223
查看次数

标签 统计

c# ×2

.net ×1

bit-manipulation ×1

enums ×1

flags ×1

generic-method ×1

generics ×1