按位與、接位或操作,使一個數值可以分身同時代表多個不同值。

按位與、接位或操作,使一個數值可以分身同時代表多個不同值。

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)]



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章