C#小问题

[复制链接]
查看11 | 回复5 | 2010-6-2 11:34:39 | 显示全部楼层 |阅读模式
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);
其中newFont 代表新的字体,oldFont原先的字体。不懂得是 oldFont.Style & ~FontStyle.Italic这句话是什么意思,尤其是里面的&和~符号,有时还有|及^符号,应该和二进制中的运算不一个意思吧。请给予解释
就说一下在这里是什么意思就行了

回复

使用道具 举报

千问 | 2010-6-2 11:34:39 | 显示全部楼层
&, |, ~, ^都是二进制运算符。&按位与。仅当两个位同时为1时,结果1,否则0;0110 & 1010 = 0010|按位或。两个位有一个为1时,结果1,否则0;0110 | 1010 = 1110~按位取反。反转数字的每一位。~0110 = 1001^异或。仅当两位中只有一个1时,结果1,否则00110 ^ 1010 = 1100FontStyle是枚举类型,他的值实际上是一个数字,默认为int型。FontStyle.Italic值为2,即0010,按位取反得1101,在于某个变量按位与,得8(1000),4(0100),1(0001),0(0000)四者之一,即除Font
回复

使用道具 举报

千问 | 2010-6-2 11:34:39 | 显示全部楼层
是位运算符。随便翻本C#基础书都有的,你看看书会比我讲的更清楚。===========Italic是斜体,大多数文本编辑软件都用到这个词。html的也是这个缩写。很多文本编辑软件都用Ctrl + i (Windows下)来作为设置斜体的快捷方式。Bold(b)也是如此。代码的含义,b0sus解释的非常详细了。
回复

使用道具 举报

千问 | 2010-6-2 11:34:39 | 显示全部楼层
Italic估计跟意大利有关;
回复

使用道具 举报

千问 | 2010-6-2 11:34:39 | 显示全部楼层
首先font.style 属性的类型是fontstyle枚举类型,而这个类型具有〔flagsattribute 〕属性,这个属性指示font.style可以作为位域处理,所以它的所有枚举值都是按位存储的,这样不仅节省空间还易于操作。所以&~等符号与您通常见到的含义是一样的!
回复

使用道具 举报

千问 | 2010-6-2 11:34:39 | 显示全部楼层
这都是些底层的东西,不用了解太多,也可以换种简单的方式写啊。干嘛折磨自己呢、
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行