【发布时间】:2013-01-16 07:46:09
【问题描述】:
http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx
指定选项
options 参数是 RegexOptions 枚举值的按位或组合。
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace;
这是什么意思?为什么使用按位运算符?例如,而不是使用数组有什么好处?
【问题讨论】:
-
您的意思是他们为什么选择使用按位运算符指定选项?这是将标志传递给函数的一种相当常见的方式,并且可以节省将数组传递给函数的开销,因为底层类型将是 unsigned int/char。假设 RegexOptions.IgnoreCase 为 1,RegexOptions.IgnorePatternWhitespace 为 2,则 options 参数为 1 | 2 = 3。然后您可以执行
options & RegexOptions.IgnoreCase来查看用户是否想要该选项。它只是比数组快。 -
它们是标志。 Read
-
它是轻量级的(用单个整数实现,而不是布尔数组)。把整数想象成一个位数组,你会看到你有一个包含 32 或 64 个布尔值的数组。