public static void Main()
var allFives = (int)PaginatorOptions.Batch05 + (int)PaginatorOptions.Payment05;
allFives = allFives.SetFlag(PaginatorOptions.Batch20);
Console.WriteLine(allFives.HasFlag(PaginatorOptions.Batch20));
var hasFlag05 = ((PaginatorOptions)allFives).HasFlag(PaginatorOptions.Batch05);
var hasFlagPayment20 = ((PaginatorOptions)allFives).HasFlag(PaginatorOptions.Payment20);
Console.WriteLine(allFives);
Console.WriteLine(hasFlag05);
Console.WriteLine(hasFlagPayment20);
public enum PaginatorOptions {
public static class BitwiseExtension {
public static bool HasFlag(this int flags, PaginatorOptions newValue) {
return ((PaginatorOptions)flags).HasFlag(newValue);
public static int SetFlag(this int flags, PaginatorOptions newValue){
return flags + (int)newValue;
public static int RemoveFlag(this int flags, PaginatorOptions newValue){
return flags - (int)newValue;