gpt4 book ai didi

.net - 枚举标志测试的差异?

转载 作者:行者123 更新时间:2023-12-01 01:16:11 25 4
gpt4 key购买 nike

正在查看另一个问题,并且很好奇这两者之间是否存在任何差异(在操作或性能方面)。

鉴于:

[Flags]
enum TransportModes
{
None = 0,
Bus = 1,
Train = 2,
Plane = 4
}

还有一个变量
var trip = TransportModes.Bus | TransportModes.Train;
  • if((trip & TransportModes.Bus) == TransportModes.Bus) ...
  • if((trip & TransportModes.Bus)) != 0) ...

  • 我知道他们的所作所为有点明智,而且我知道 HasFlag替换它们。但是 Jon Skeet 推荐了一个,而 MSDN 文档推荐了另一个。

    最佳答案

    bus不是 2 的幂(如果它设置了多个位),并且 trip只设置了其中一些位,(trip & bus) == bus会是假的,但是 (trip & bus)) != 0会是真的。

    关于.net - 枚举标志测试的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530866/

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