5

今天看到这段代码:

ViewBag.country = from p in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures)
                              select new SelectListItem
                              {
                                  Text = p.EnglishName,
                                  Value = p.DisplayName
                              };

我无法理解。“~” - 这是一个错误?据我记得,“~”放在析构函数之前。但这是枚举。并且编译了这段代码!

4

1 回答 1

6

它是按位否定运算符。

~ 运算符(C# 参考)

~运算符对其操作数执行按位补码运算,这具有反转每个位的效果。int为、uintlong和预定义按位补码运算符ulong

并且由于枚举通常允许对整数类型进行操作,因此您可以使用~上面列出的类型支持的枚举。

于 2013-04-12T09:48:17.777 回答