C# 使用按位运算符设置选项的正则表达式
指定选项 options参数是RegexOptions枚举值的按位或组合C# 使用按位运算符设置选项的正则表达式,c#,regex,options,C#,Regex,Options,指定选项 options参数是RegexOptions枚举值的按位或组合 RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace; 这是什么意思?例如,为什么使用按位运算符,而不是使用数组有什么好处?这实际上是枚举标志。每个枚举项都与一个数字相关联,并使用实际对每个枚举名称后面的数字进行操作的按位运算符 有关更多信息,请参见此:您的意思是,他们为什么选择使用按位运算符指定选项?这
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace;
这是什么意思?例如,为什么使用按位运算符,而不是使用数组有什么好处?这实际上是枚举标志。每个枚举项都与一个数字相关联,并使用实际对每个枚举名称后面的数字进行操作的按位运算符
有关更多信息,请参见此:您的意思是,他们为什么选择使用按位运算符指定选项?这是一种相当常见的向函数传递标志的方法,并且可以节省向函数传递数组的开销,因为底层类型是unsigned int/char。假设RegexOptions.IgnoreCase为1,RegexOptions.IgnorePatternWhitespace为2,则options参数为1 | 2=3。然后可以执行
options&RegexOptions.IgnoreCase
以查看用户是否需要该选项。它比数组快,它们是标志。它是轻量级的(使用单个整数实现,而不是布尔值数组)。把一个整数想象成一个位数组,你会发现你有一个32或64个布尔数组。我还会看一下
操作符上的,因为它说明了它同时用作逻辑或操作符和位操作符。