KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I haven't really used bitwise enums before, and I just want to make sure my testing is correct. I am most interested in testing for the values None and All. We receive data from a webservice that utilises this enum to categorise certain pieces of the data. Given that, I am assuming that nether None nor All would ever be combined with any other value. Given the following bitwise enum definition; [System.FlagsAttribute()] public enum TrainingComponentTypes : int { None = 0, AccreditedCourse = 1, Qualification = 2, Unit = 4, SkillSet = 8, UnitContextualisation = 16, TrainingPackage = 32, AccreditedCourseModule = 64, All = 127, } I read the following quote on this MSDN site about FlagAttributes; Use None as the name of the flag enumerated constant whose value is zero. You cannot use the None enumerated constant in a bitwise AND operation to test for a flag because the result is always zero. However, you can perform a logical, not a bitwise, comparison between the numeric value and the None enumerated constant to determine whether any bits in the numeric value are set. Does a logical comparison in this instance refer to a normal equality test for enums? For example; TrainingComponentTypes tct = TrainingComponentTypes.None; if (tct == TrainingComponentTypes.None) { ... } For a bitwise comparison , I am performing the following; TrainingComponentTypes tct = TrainingComponentTypes.AccreditedCourse | TrainingComponentTypes.Qualification | TrainingComponentTypes.TrainingPackage; Assert.IsTrue((tct & TrainingComponentTypes.AccreditedCourse) == TrainingComponentTypes.AccreditedCou
Tags (comma-separated)
Save Edits
Cancel