草庐IT

HasFlags

全部标签

c# - "or"应该与 .Net4 Hasflags 一起工作 : enum. HasFlag(AccessRights.Read | AccessRights.Write)

我正在尝试新的HasFlags功能,并想知道以下应该工作:enum.HasFlag(AccessRights.Read|AccessRights.Write)...因为好像没有...DBAccessRightsrights=(DBAccessRights)permission.PermissionFlags;if(rights.HasFlag(DBAccessRights.WikiMode)){//works}if(rights.HasFlag(DBAccessRights.WikiMode|DBAccessRights.CreateNew)){//Doesn'twork}DBAcce

c# - HasFlags 总是为枚举中的 None (0) 值返回 true

这是枚举定义:[Flags]enumAnimals{None=0,Dog=1,Cat=2,Horse=4,Zebra=8,}现在,给定以下代码,为什么HasFlag方法会针对值Animals.None返回true?AnimalsmyAnimals=Animals.Dog|Animals.Horse;varhasNone=myAnimals.HasFlag(Animals.None);//true!Why?varhasCat=myAnimals.HasFlag(Animals.Cat);//falsevarhasDog=myAnimals.HasFlag(Animals.Dog);//t