By using Enum Flags we can do comparisons as follows:
[Flags]
public enum Values
{
Value1 = 1 << 0,
Value2 = 1 << 1,
Value3 = 1 << 2
}
void MethodName(Values randomValue)
{
if ((randomValue & (Values.Value1 | Values.Value2)) != 0)
{
// code here
}
}
Note the Flags attribute and the bit shifting required for the Enum values. The Enum values can also be defined as:
[Flags]
public enum Values
{
Value1 = 1,
Value2 = 2,
Value3 = 4
}
We can now parameterize the Allowed Values as follows:
[Flags]
public enum Values
{
Value1 = 1 << 0,
Value2 = 1 << 1,
Value3 = 1 << 2
}
void MethodName(Values randomValue)
{
if (IsValid(randomValue, Values.Value1 | Values.Value2))
{
// code here
}
}
bool IsValid(Values randomValue, Values allowedValues)
{
return ((randomValue & (allowedValues)) != 0);
}