gpt4 book ai didi

c# - 为什么 C# 中的标志枚举没有实现运算符 << 和 >>?

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:05 25 4
gpt4 key购买 nike

我想做这样的事情,但我不能:

[Flags]
enum SomeEnum : int
{
None = 0,
A,
B,
C
}

SomeEnum en = SomeEnum.A;
en <<= 1; //Expect en == SomeEnum.B but I recieve an error here

这样做是为了什么?

最佳答案

枚举本身不是位字段。枚举的全部意义在于抽象出任何基础值。使用移位运算符意味着知道这些值是什么。

但是,如果你真的想改变,只需转换:

en = (SomeEnum)((int)en << 1);

关于c# - 为什么 C# 中的标志枚举没有实现运算符 << 和 >>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com