Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
enums with extension method: better
//Rextester.Program.Main is the entry point for your code. Don't change it. //Compiler version 4.0.30319.17929 for Microsoft (R) .NET Framework 4.5 using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; namespace Rextester { public class Program { [Flags] public enum Choices { First = 1 << 0, //1 Second = 1 << 1, //2 Third = 1 << 2, //4 Fourth = 1 << 3, //8 FirstOrSecond = (First | Second) } public static bool IsFirstOrFourth(Choices self) { return (self & (Choices.First | Choices.Fourth)) > 0; } public static void Main(string[] args) { Choices allowed = (Choices.First | Choices.Third); Console.WriteLine("using inline variable:"); Console.WriteLine(allowed.HasFlag(Choices.Third)); Console.WriteLine(allowed.HasFlag(Choices.Fourth)); Console.WriteLine("\nusing flag of extra enum option:"); Console.WriteLine(Choices.FirstOrSecond.HasFlag(Choices.First)); Console.WriteLine(Choices.FirstOrSecond.HasFlag(Choices.Third)); Console.WriteLine("\nusing method:"); Console.WriteLine(IsFirstOrFourth(Choices.First)); Console.WriteLine(IsFirstOrFourth(Choices.Second)); Console.WriteLine("\nusing extension method:"); Console.WriteLine(Choices.First.IsOneOf(Choices.First, Choices.Fourth)); Console.WriteLine(Choices.Third.IsOneOf(Choices.FirstOrSecond)); } } public static class EnumExtensions { public static bool IsOneOf(this Enum enumeration, params Enum[] enums) { return enums.Contains(enumeration); } } }
run
|
edit
|
history
|
help
0
buble sort
compiled prog
WallPascal
Pyramid using C#
currency change
asxs sxsd
4 squares theorem
LinqGroupContiguous
Counter-Strike Global Offensive Steam
Обненник 24/7