C#:这个符号/字符是什么意思:^?

时间:2011-08-23 08:47:42

标签: c# character

我在Google / Stackoverflow中搜索过..没找到东西..

有兴趣知道这意味着什么......

我也在这样的例子中看到了它:

richTextBox.SelectionFont = new Font(richTextBox.SelectionFont, richTextBox.SelectionFont.Style ^ FontStyle.Bold);

4 个答案:

答案 0 :(得分:7)

Bitwise Exclusive Or,我认为您发布的代码的行为是切换所选文本的粗体属性

答案 1 :(得分:4)

这是一个bitwise exclusive or。在这种情况下,它用于切换字体样式的粗体属性。

有关各种按位运算符的详细说明,请参阅here

xor的工作方式特别是当且仅当一个的输入位被设置时才设置结果位。

所以,如果我们xor 1010 0010 1010 ^ 0010 ---- 1000 (ie, we toggle that third digit). ,我们会得到:

xor

如果我们再次执行 1000 ^ 0010 ---- 1010 (ie, we toggle that third digit back to its original value).

{{1}}

这就是为什么它是一种切换特定位的便捷方式。

答案 2 :(得分:3)

按位异或,请参阅MSDN。有关示例/说明,请参阅here。按位运算符通常与“标志”结合使用,例如是否应用FontStyle.Bold。在它上面使用XOR将来回切换它。

答案 3 :(得分:2)

该角色被称为克拉。它是按位异或(XOR),请参阅here。它读作return 1 if either operand is 1, but not both

left ^ right可以由AND和OR组成:

(left || right) && !(left && right)

左或右,而不是左右。

在这种情况下,它用于从具有bold属性的枚举值(Style)中反转一位([Flags])。见here。即它产生的新风格与选择风格相同,切换为粗体。