以下代码中的“|=”是什么意思?

csharpwcf 2010-06-17 02:16:45

RegexOptions regexOptions = new RegexOptions
if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
if (cbCultureInvariant.Checked) regexOptions |= RegexOptions.CultureInvariant;
if (cbMultiLine.Checked) regexOptions |= RegexOptions.Multiline;
if (cbSingleLine.Checked) regexOptions |= RegexOptions.Singleline;
if (cbIndentedInput.Checked) regexOptions |= RegexOptions.IgnorePatternWhitespace;
...全文
409 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
宇峰科技 2010-06-17
  • 打赏
  • 举报
回复
都说了,顶一下吧
gauzeapricot122 2010-06-17
  • 打赏
  • 举报
回复
慢了一步 都被说得这么仔细了 (*^__^*) 嘻嘻……
sparkyu01 2010-06-17
  • 打赏
  • 举报
回复
比如if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
就是说匹配正则表达式时,不考虑大小写
t20100504t 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
等效 a = a | 一个bool
| 是或运算。
[/Quote]

sparkyu01 2010-06-17
  • 打赏
  • 举报
回复
就是加上|=后面的属性的意思
csharpwcf 2010-06-17
  • 打赏
  • 举报
回复
那以下代码的功能是?

RegexOptions regexOptions = new RegexOptions
if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
if (cbCultureInvariant.Checked) regexOptions |= RegexOptions.CultureInvariant;
if (cbMultiLine.Checked) regexOptions |= RegexOptions.Multiline;
if (cbSingleLine.Checked) regexOptions |= RegexOptions.Singleline;
if (cbIndentedInput.Checked) regexOptions |= RegexOptions.IgnorePatternWhitespace;

巴朗鱼 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]

操作符=

c的标准写法,意思是

操作符的左值 作为表达式的第一个值和=右边的数操作,例如

+=
-=
*=
/=
%=
^=
|=
&=

都分别表示

int i = 5;
i+=2; 表示 i = i + 2;
以此类推

所以
|=
就表示 regexOptions = regexOptions | RegexOptions.Ig……
[/Quote]
+1
threenewbee 2010-06-17
  • 打赏
  • 举报
回复
if (cbIgnoreCase.Checked) regexOptions |= RegexOptions.IgnoreCase;
如果选择了忽略大小写的选项框,那么无论regexOptions是什么,都二进制加上RegexOptions.IgnoreCase标记。

假设 regexOptions = 00000111(二进制),IgnoreCase = 01000000
那么或运算后 = 01000111
兔子-顾问 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
等效 a = a | 一个bool
| 是或运算。
[/Quote]

是的,位运算操作,与或非的或,表示合并的意思。 0 1 => 1, 1 1=>1
CosmoKey 2010-06-17
  • 打赏
  • 举报
回复
a |= b

同等于

a = a | b

threenewbee 2010-06-17
  • 打赏
  • 举报
回复
等效 a = a | 一个bool
| 是或运算。
兔子-顾问 2010-06-17
  • 打赏
  • 举报
回复
操作符=

c的标准写法,意思是

操作符的左值 作为表达式的第一个值和=右边的数操作,例如

+=
-=
*=
/=
%=
^=
|=
&=

都分别表示

int i = 5;
i+=2; 表示 i = i + 2;
以此类推

所以
|=
就表示 regexOptions = regexOptions | RegexOptions.IgnoreCase;
以此类推。

110,924

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧