I have the following listing flags:
[Flags] private enum MemoryProtection: uint { None = 0x000, NoAccess = 0x001, ReadOnly = 0x002, ReadWrite = 0x004, WriteCopy = 0x008, Execute = 0x010, ExecuteRead = 0x020, ExecuteReadWrite = 0x040, ExecuteWriteCopy = 0x080, Guard = 0x100, NoCache = 0x200, WriteCombine = 0x400, Readable = (ReadOnly | ReadWrite | ExecuteRead | ExecuteReadWrite), Writable = (ReadWrite | WriteCopy | ExecuteReadWrite | ExecuteWriteCopy) }
Now I have an instance of enum that I need to check to see if it is readable. If I use the following code:
myMemoryProtection.HasFlag(MemoryProtection.Readable)
It always returns false in my case, because I think HasFlag checks to see if it has every flag. I need something elegant to not do this:
myMemoryProtection.HasFlag(MemoryProtection.ReadOnly) || myMemoryProtection.HasFlag(MemoryProtection.ReadWrite) || myMemoryProtection.HasFlag(MemoryProtection.ExecuteRead) || myMemoryProtection.HasFlag(MemoryProtection.ExecuteReadWrite)
How can i do this?
source share