枚举定义中的波浪号(〜)是什么?
我一直感到很惊讶,即使在这段时间里一直使用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