Home | Computer | Software
By: Dave Bush
I saw this question and immediately thought, "You can't! An Enum is an Integer that has been restricted to the values it can accept." And I was basically right. But, I forgot that even with an integer you can do the following in CSharp: int i = 1 | 2; And in VB.NET Dim i As Integer = 1 Or 2 To end up with a variable i equal to 3 because both do bitwise ands. So if I had an enumerated value enum F { thing1 = 1, thing2 = 2, thing3 = 4 } Or, in VB.NET Enum F thing1 = 1 thing2 = 2 thing3 = 4End Enum You could then do the following in CSharp: F fvar; fvar = F.thing1 | F.thing2; Or you could do it in VB.NET like this: Dim fvar As F = F.thing1 Or F.thing2 There's just one small problem with doing all of this. If you evaluate fvar, you see that it is equal to 3 because we did not define 3 to be a specific value in our enumeration. However, by adding the Flags attribute to our enum definition: [Flags]enum F { thing1 = 1, thing2 = 2, thing3 = 4 } Or _Enum F thing1 = 1 thing2 = 2 thing3 = 4End Enum fvar will evaluate to: thing1 | thing2 in CSharp and in VB.NET… Well, in VB.NET it still evaluates to 3. del.icio.us Tags:"http://www.mywinhosting.com">.net Technorati Tags:.net Dave answers ASP.NET related questions at .NET Answers. You can subscribe to his RSS feed here. He also runs an ASP.NET Web Hosting company at My Win Hosting.
Niche Article Directory: http://www.thatsmyniche.com
Dave answers ASP.NET related questions at .NET Answers and runs a ASP.NET Web Hosting company at My Win Hosting.
Please Rate this Article
5 out of 54 out of 53 out of 52 out of 51 out of 5
Not yet Rated
Login Id. :
Password: