枚举定义中的波浪号(〜)是什么?

我一直感到很惊讶,即使在这段时间里一直使用C#之后,我仍然设法找到了我不知道的东西…

我已经尝试过在互联网上搜索此内容,但是在搜索中使用“〜”对我来说效果不佳,我也没有在MSDN上找到任何内容(并不是说它不存在)

我最近看到了这段代码,波浪号(〜)是什么意思?

/// <summary>

/// Enumerates the ways a customer may purchase goods.

/// </summary>

[Flags]

public enum PurchaseMethod

{

All = ~0,

None = 0,

Cash = 1,

Check = 2,

CreditCard = 4

}

看到它令我有些惊讶,所以我尝试对其进行编译,并且它起作用了……但是我仍然不知道它的含义/作用。有帮助吗?

回答:

〜是一元运算符的补码运算符-它翻转其操作数的位。

~0 = 0xFFFFFFFF = -1

用二进制补码算法 ~x == -x-1

在几乎所有从C借用语法的语言中都可以找到〜运算符,包括Objective-C / C ++ / C#/ Java / Javascript。

以上是 枚举定义中的波浪号(〜)是什么? 的全部内容, 来源链接: utcz.com/qa/402269.html

回到顶部