Extension methods with Enumeration C# with Example
Extension methods are useful for adding functionality to enumerations. One common use is to implement a conversion method. public enum YesNo { Yes, No, } public static class EnumExtentions { public static bool ToBool(this YesNo yn) { return yn == YesNo.Yes; } public static YesNo ToYesNo(this bool yn) { return yn ? YesNo.Yes : YesNo.No; } } Now you can quickly convert your enum value to a different type. In this case a bool. bool yesNoBool = YesNo.Yes.ToBool(); // yesNoBool == true YesNo yesNoEnum = false.ToYesNo(); // yesNoEnum == YesNo.No Alternatively extension methods can be used to add property like methods. public enum Element { Hydrogen, Helium, Lithium, Beryllium, Boron, Carbon, Nitrogen, Oxygen //Etc } public static class ElementExtensions { public static double AtomicMass(this Element element) { switch(element) { case Element.Hydrogen: return 1.00794; case Element.Helium: return 4.002602; case Element.Lithium: return 6.941; case Element.Beryllium: return 9.012182; case Element.Boron: return 10.811; case Element.Carbon: return 12.0107; case Element.Nitrogen: return 14.0067; case Element.Oxygen: return 15.9994; //Etc } return double.Nan; } } var massWater = 2*Element.Hydrogen.AtomicMass() + Element.Oxygen.AtomicMass();