// Run this code and look for his obvious error by the compiler
namespace FlagCheck
{
using System;
[Flags]
enum SomeFlags
{
None = 0,
One,
Two,
Three,
Four,
Five,
Six,
All = One | Two | Three | Four | Five | Six
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
SomeFlags f;
f = SomeFlags.Four; // Set flag FOUR and ONLY FOUR, get ready for a
supprise
if ( (f & SomeFlags.One) > 0)
{
Console.WriteLi ne("flag one is set");
}
if ( (f & SomeFlags.Two) > 0)
{
Console.WriteLi ne("flag two is set");
}
if ( (f & SomeFlags.Three ) > 0)
{
Console.WriteLi ne("flag three is set");
}
if ( (f & SomeFlags.Four) > 0)
{
Console.WriteLi ne("flag four is set");
}
if ( (f & SomeFlags.Five) > 0)
{
Console.WriteLi ne("flag five is set");
}
if ( (f & SomeFlags.Six) > 0)
{
Console.WriteLi ne("flag six is set");
}
Console.ReadLin e();
}
}
}
namespace FlagCheck
{
using System;
[Flags]
enum SomeFlags
{
None = 0,
One,
Two,
Three,
Four,
Five,
Six,
All = One | Two | Three | Four | Five | Six
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
SomeFlags f;
f = SomeFlags.Four; // Set flag FOUR and ONLY FOUR, get ready for a
supprise
if ( (f & SomeFlags.One) > 0)
{
Console.WriteLi ne("flag one is set");
}
if ( (f & SomeFlags.Two) > 0)
{
Console.WriteLi ne("flag two is set");
}
if ( (f & SomeFlags.Three ) > 0)
{
Console.WriteLi ne("flag three is set");
}
if ( (f & SomeFlags.Four) > 0)
{
Console.WriteLi ne("flag four is set");
}
if ( (f & SomeFlags.Five) > 0)
{
Console.WriteLi ne("flag five is set");
}
if ( (f & SomeFlags.Six) > 0)
{
Console.WriteLi ne("flag six is set");
}
Console.ReadLin e();
}
}
}
Comment