【问题标题】:What does | operator mean in expression-bodied property?是什么 |运算符在表达式主体属性中的含义?
【发布时间】:2019-05-01 11:47:40
【问题描述】:

做什么 |运算符在语句中的意思是这样的:

public int IntProperty => (booTrue ? 1 : 0) | (fooTrue ? 2 : 0);

我熟悉 => 和 ?但我从未见过|就是这样用的。

【问题讨论】:

  • “按位或”,基本上是
  • | (按位或)将两个数字作为操作数,并对两个数字的每一位进行 OR。 OR 的结果为 1 两位中的任何一位为 1。
  • 与表达式体属性无关,是简单的C# 1.0。

标签: c# operators


【解决方案1】:

这是一个bitwise or。如果我们查看您的代码中的值,您可能会有:

  • 0 => 00
  • 1 => 01
  • 2 => 10

所以,如果booTrue 为真且fooTrue 为真,则为1 | 2。因为它是按位或,它将是 01 | 10 => 11 十进制 => 3 。

【讨论】:

  • 非常感谢!不过,在我看来,这是一种复杂的写作方式。至少在这个例子中。
  • @Speedo 这是一种“聪明”的写作方式fooTrue ? (booTrue ? 3 : 2) : (booTrue ? 1 : 0)
  • 是的,但在我看来,这完全是偶然的,它只在这个确切的例子中起作用。如果有像 5、11、17 而不是 1、2、3 这样的数字,如果是对象或数组呢?这几乎就像写的人想炫耀自己是一个 l33t 程序员一样。这样写有什么实际好处?但这超出了主题,谢谢。
猜你喜欢
  • 1970-01-01
  • 2020-08-01
  • 2015-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2015-07-16
  • 2019-09-12
相关资源
最近更新 更多