求人帮了解一段代码
求人帮理解一段代码
private void buttonBold_Click(object sender, EventArgs e)
{
Font oldfont;
Font newfont;
oldfont = this.richTextBox1.SelectionFont ;
if (oldfont .Bold)
{
newfont = new Font(oldfont, oldfont.Style & ~FontStyle.Bold);
}
else
{
newfont = new Font(oldfont, oldfont.Style | FontStyle.Bold);
}
this.richTextBox1.SelectionFont = newfont;
richTextBox1.Focus();
}
这段代码,就是做了个按钮,然后能在加粗和不加粗之间切换,但是为什么是用&和|呢,特别是第二个为什么不能也用&呢?
------解决思路----------------------
楼主不熟悉&和
------解决思路----------------------
的操作哈~
简单理解 & 就是带排斥,两者只能存在一个,而
------解决思路----------------------
比较大度,操作数中任何一个都可以~
以上只是玩笑解析~
------解决思路----------------------
友情帮顶
------解决思路----------------------
以前有过帖子 参考
------解决思路----------------------
我们用一个数表示字体风格,其中每个二进制位相当于一个开关。
那么我们用
------解决思路----------------------
可以打开这个开关(无论之前它是不是已经打开了),因为1和0或者1做
------解决思路----------------------
都是1。
用& ~可以关闭它。因为0无论和1还是和0做&都是0
------解决思路----------------------
&和
------解决思路----------------------
不同于&&和
------解决思路----------------------
。
private void buttonBold_Click(object sender, EventArgs e)
{
Font oldfont;
Font newfont;
oldfont = this.richTextBox1.SelectionFont ;
if (oldfont .Bold)
{
newfont = new Font(oldfont, oldfont.Style & ~FontStyle.Bold);
}
else
{
newfont = new Font(oldfont, oldfont.Style | FontStyle.Bold);
}
this.richTextBox1.SelectionFont = newfont;
richTextBox1.Focus();
}
这段代码,就是做了个按钮,然后能在加粗和不加粗之间切换,但是为什么是用&和|呢,特别是第二个为什么不能也用&呢?
------解决思路----------------------
楼主不熟悉&和
------解决思路----------------------
的操作哈~
简单理解 & 就是带排斥,两者只能存在一个,而
------解决思路----------------------
比较大度,操作数中任何一个都可以~
以上只是玩笑解析~
------解决思路----------------------
友情帮顶
------解决思路----------------------
以前有过帖子 参考
------解决思路----------------------
我们用一个数表示字体风格,其中每个二进制位相当于一个开关。
那么我们用
------解决思路----------------------
可以打开这个开关(无论之前它是不是已经打开了),因为1和0或者1做
------解决思路----------------------
都是1。
用& ~可以关闭它。因为0无论和1还是和0做&都是0
------解决思路----------------------
&和
------解决思路----------------------
不同于&&和
------解决思路----------------------
。