按位與、接位或操作,使一個數值可以分身同時代表多個不同值。
Match match1 = Regex.Match(input, pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);
第3個參數是 RegexOptions 枚舉類型,一般只能傳一個參數,但通過按位或操作可以同時傳多個值(同時代表多個不同值)比如此例中的RegexOptions.Singleline | RegexOptions.IgnoreCase ,然後在接收的函數內部進行按位與即可判斷得知傳進了哪些值。
但是,這種操作的前提是,其值的定義必須是 2的次方,才能得到正確運算及判斷結果。下面來參考一下微軟官方對RegexOptions的定義,更直觀一些:
public enum RegexOptions
{
None = 0,
IgnoreCase = 1,
Multiline = 2,
ExplicitCapture = 4,
Compiled = 8,
Singleline = 16,
IgnorePatternWhitespace = 32,
RightToLeft = 64,
ECMAScript = 256,
CultureInvariant = 512,
}
其他示例
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]