Using Bitwise operators on flags

后端 未结 9 1923
生来不讨喜
生来不讨喜 2020-12-23 12:11

I have four flags

Current = 0x1  
Past = 0x2  
Future = 0x4  
All = 0x7

Say I receive the two flags Past and Future (setFlags(PAST

9条回答
  •  太阳男子
    2020-12-23 12:34

    If you use .NET 4 or later I prefer to do this, cleaner imao:

    [Flags]
    public enum Time
    {
        None = 0
        Current = 1,
        Past = 2,
        Future = 4
    }
    
    myProp = Time.Past | Time.Future;
    
    if (myProp.HasFlag(Time.Past))
    {
        // Past is set...
    }
    

提交回复
热议问题