Vb.net中使用的多个“或”

时间:2019-07-24 18:17:53

标签: .net vb.net

我正在编写一个正则表达式,其中我需要为比赛分配多个选项,在此期间,我偶然发现了一段代码,如下所示:

Dim options As RegexOptions = RegexOptions.Multiline Or RegexOptions.IgnoreCase 

此代码似乎可以按照我的需要工作,但它引发了一个问题,即or关键字在此代码行中的作用是什么?

似乎正在为一个变量分配多个值。

目的和局限性是什么?

以下代码可以类似使用吗?

Dim options As RegexOptions = RegexOptions.Multiline Or 
RegexOptions.IgnoreCase Or RegexOptions.IgnorePatternWhitespace    

1 个答案:

答案 0 :(得分:1)

documentation解释了每个选项的数值。使用OR运算符将执行bitwise operation

让我们举个例子。 RegexOptions.Multiline的数值为256,而RegexOptions.IgnoreCase的数值为1。用二进制表示。

256 = ‭000100000000 (This is the bit for multiline)‬
  1 = 000000000001 (This is the bit for IgnoreCase)

256或1 = 257

257 = 000100000001

如您所见,257包含多行和igneecase的位。