Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用按位运算符设置选项的正则表达式_C#_Regex_Options - Fatal编程技术网

C# 使用按位运算符设置选项的正则表达式

C# 使用按位运算符设置选项的正则表达式,c#,regex,options,C#,Regex,Options,指定选项 options参数是RegexOptions枚举值的按位或组合 RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace; 这是什么意思?例如,为什么使用按位运算符,而不是使用数组有什么好处?这实际上是枚举标志。每个枚举项都与一个数字相关联,并使用实际对每个枚举名称后面的数字进行操作的按位运算符 有关更多信息,请参见此:您的意思是,他们为什么选择使用按位运算符指定选项?这

指定选项

options参数是RegexOptions枚举值的按位或组合

RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace;

这是什么意思?例如,为什么使用按位运算符,而不是使用数组有什么好处?

这实际上是枚举标志。每个枚举项都与一个数字相关联,并使用实际对每个枚举名称后面的数字进行操作的按位运算符


有关更多信息,请参见此:

您的意思是,他们为什么选择使用按位运算符指定选项?这是一种相当常见的向函数传递标志的方法,并且可以节省向函数传递数组的开销,因为底层类型是unsigned int/char。假设RegexOptions.IgnoreCase为1,RegexOptions.IgnorePatternWhitespace为2,则options参数为1 | 2=3。然后可以执行
options&RegexOptions.IgnoreCase
以查看用户是否需要该选项。它比数组快,它们是标志。它是轻量级的(使用单个整数实现,而不是布尔值数组)。把一个整数想象成一个位数组,你会发现你有一个32或64个布尔数组。我还会看一下
操作符上的,因为它说明了它同时用作逻辑
操作符和位操作符。